Go 类型切换语句
示例
一个简单的类型开关:
//假设x是类型interface{}的表达式 switch t := x.(type) { case nil: //x为零 //t将为interface{}类型 case int: //x的基础类型为int //在这种情况下,t也将是int case string: //x的基础类型是字符串 //在这种情况下,t也将是字符串 case float, bool: //x的基本类型是float或bool //因为我们不知道哪个,所以在这种情况下,t是interface{}类型的 default: //x的基础类型不是用于测试的任何类型 //t是这种类型的interface{} }
您可以测试任何类型,包括error,用户定义的类型,接口类型和函数类型:
switch t := x.(type) { case error: log.Fatal(t) case myType: fmt.Println(myType.message) case myInterface: t.MyInterfaceMethod() case func(string) bool: if t("Hello world?") { fmt.Println("你好,世界!") } }