func main(){
arr := []interface{}{true,int16(1),uint8(2),"a",uint16(3),4,int8(5),"c",1.1}
for _,v := range arr {
fmt.Print(v)
fmt.Print(" print type ")
switch v.(type){
case bool:
fmt.Print("bool")
continue
case string:
fmt.Print("string")
break
case uint8:
case uint16:
fmt.Print("uint")
case int,int8,int16:
fmt.Print("int")
default:
fmt.Print("default")
}
fmt.Println(";")
}
fmt.Println("end")
}
执行结果:
true print type bool1 print type int;
2 print type ;
a print type string;
3 print type uint;
4 print type int;
5 print type int;
c print type string;
1.1 print type default;
end
1、switch中case分支中不能使用continue,会报编译错误
2、例子中的continue,是对for生效的
3、golang中switch分支语句的每个case中会自动加上一个break语句,意味着程序进入一个case分支后,不管有没有显式的break,程序都不会继续执行其他的case分支,而是直接退出整个switch流程
有疑问加站长微信联系(非本文作者)