Switch简介
Go的前提switch的根本下场和C、Java近似:
- switch 语句用于基于不合前提奉行不合行动,语句每个 case 分支都是示例独一的,从上至下一一测试,详解直到婚配为止 。前提
- 婚配项后背也不须要再加 break 。语句
特点:
switch 默许气候下 case 末尾自带 break 语句,示例婚配成功后就不会奉行其他 case
重点引见Go傍边的详解Switch的两个出格点:
**表达式剖断为true还需求奉行后背的 case ,可独霸 fallthrough
type-switch 来剖断某个 inte***ce 变量中理论存储的前提变量圭表类型
fallthrough
特点:
强逼奉行后背的 case 语句,fallthrough 不会剖断下一条 case 的语句表达式下场可否为 true 。
示例 :
package mainimport "fmt"func main() { switch { case true: fmt.Println("1、示例case前提语句为false!") fallthrough case false: fmt.Println("2 、详解case前提语句为true!") default: fmt.Println("默许的前提case") }}代码分化:
- 正常来讲当奉行完第一条语句往后不会奉行第二个case,因为第二个case为false并且已奉行完了第一个true的语句case
- fallthrough关头字存在会强逼奉行第二个case
Type Switch
特点:
- 剖断某个 inte***ce 变量中理论存储的变量圭表类型
- 可以列举圭表类型 ,值圭表类型和援引圭表类型都可以
语法格式:
switch x.(type){ case type: statement(s); case type: statement(s); /* 你可以定义肆意个数的示例case */ default: /* 可选 */ statement(s);}示例:
package mainimport ( "fmt" "go/types")func main() { var inter inte***ce{ } = true //独霸变量往庖代接口傍边的值并且剖断圭表类型 switch i := inter.(type) { case types.Nil: fmt.Println("x的圭表类型是:", i) case int: fmt.Println("x是int圭表类型") case float64: fmt.Println("x是float64圭表类型") case func(int2 int): fmt.Println("x是func(int)圭表类型") case bool, string: fmt.Println("x是bool或string圭表类型") default: fmt.Println("未知圭表类型") }可以直接剖断接口傍边的数据的数据圭表类型
到此这篇关于Go中的前提语句Switch详解的文章就引见到这了,更多相干Go前提语句Switch内容请搜刮完竣下载之前的文章或延续不雅不雅不雅不雅鉴赏上面的相干文章希看大年夜师往后多多支撑完竣下载 !











