深入剖析Golang语言编程中switc
switch语句可以让一个变量对反对值的列表平等进行测试。每个值被称为一个的情况(case),变量被接通检查每个开关盒(switchcase)。 在Go编程,switch有两种类型。 表达式Switch-在表达式switch,case包含相比较,switch表达式的值。 类型Switch-在这类型switch,此时含有进行比较特殊注明开关表达式的类型。 表达式Switch在Go编程语言中表达switch语句的语法如下: 复制代码 代码如下: switch(boolean-expressionorintegraltype){caseboolean-expressionorintegraltype:statement(s);caseboolean-expressionorintegraltype:statement(s);/*youcanhaveanynumberofcasestatements*/default:/*Optional*/statement(s);} 以下规则适用于switch语句: 在switch语句中使用的表达式必须具有整体或布尔表达式,或者是一个类型,其中所述类具有一个单一的转换函数,以一个整体或布尔值。如果表达不通过,默认值是true。 可以有任意数量的case语句在switch内。每个case后跟值进行比较,以及一个冒号。 constant-expression的情况,必须是相同的数据类型,在switch的变量,它必须是一个常量或文字。 当变量被接通等于case的值,以下case中将执行语句。在case语句中break不是必需。 switch语句可以有一个可选默认情况下,它必须出现在开关结束。缺省情况下,可用于执行任务时没有的case为true。则case在默认情况下也不是必须的。 流程图: 例子: 复制代码 代码如下: packagemain importfmt funcmain(){/*localvariabledefinition*/vargradestring=Bvarmarksint=90 switchmarks{case90:grade=Acase80:grade=Bcase50,60,70:grade=Cdefault:grade=D} switch{casegrade==A:fmt.Printf(Excellent!\n)casegrade==B,grade==C:fmt.Printf(Welldone\n)casegrade==D:fmt.Printf(Youpassed\n)casegrade==F:fmt.Printf(Bettertryagain\n)default:fmt.Printf(Invalidgrade\n);}fmt.Printf(Yourgradeis%s\n,grade);} 当上述代码被编译和执行时,它产生了以下结果: WelldoneExcellent!YourgradeisA 类型Switch在Go编程语言的一个类型switch语句的语法如下: 复制代码 代码如下: switchx.(type){casetype:statement(s);casetype:statement(s);/*youcanhaveanynumberofcasestatements*/default:/*Optional*/statement(s);} 以下规则适用于switch语句: 在switch语句中使用必须有接口的变量表达式{}输入。 在switch内可以有任意数量case语句。每一种case后跟的值进行比较,以及一个冒号。 case的类型必须是相同的数据类型,在switch的变量,它必须是一个有效的数据类型。 当变量被接通等于某一case中的值,以下case语句将执行。在case语句块的break不是必需的。 switch语句可以有一个可选默认case,它必须出现在switch的结束。缺省情况下,可用于执行任务时没有匹配case时。default不是必需的。 例子: 复制代码 代码如下: packagemain importfmt funcmain(){varxinterface{}switchi:=x.(type){casenil:fmt.Printf(typeofx:%T,i)caseint:fmt.Printf(xisint)casefloat64:fmt.Printf(xisfloat64)casefunc(int)float64:fmt.Printf(xisfunc(int))casebool,string:fmt.Printf(xisboolorstring)default:fmt.Printf(dontknowthetype)}} 让我们编译和运行上面的程序,这将产生以下结果: typeofx:nil 白癜风治疗费用白癜风有什么偏方转载请注明原文网址:http://www.gzdatangtv.com/bcyytx/bcyytx/1200.html |