1 类型断言
写法:x.(T)。
x:一个需要断言的接口类型,T:断言类型。
用于:判断x是否满足T的接口,查询x是否包含了T中的接口。
2 判断一个变量是否实现了指定接口
例子:
if err,ok :=x.(error); ok {
return err.Error()
}
3 转化类型
定义:如果我们反向要知道这个接口变量⾥⾯实际存储的是哪个类型的对象可以采⽤以下⽅法进⾏转换
var t int
var x interface{}
x = t
y, ok = x.(int) //转成int,带检查
4 获取类型
func justify(items ...interface{}) {
for index, v := range items {
switch v.(type) {
case int:
fmt.Printf("第 %d 个参数 is int\n", index)
case int32:
fmt.Printf("第 %d 个参数 is int32\n", index)
case float32:
fmt.Printf("第 %d 个参数 is float32\n", index)
}
}
}
func main(){
var a int
var b float32
var c int32
justify(a, b, c)
}