类型断言,就像是一个空盒子,你放进去了一个int类型,你知道它是int类型的,但是编译器并不知道,所以说断言就相当于是告诉编译器你这个数据是什么类型的
非空接口就是未知类型断言为已知类型
想要判断空接口中的值这个时候就可以使用类型断言,其语法格式:
x.(T)
其中:
x:表示类型为interface{}的变量
T:表示断言x可能是的类型。
该语法返回两个参数,第一个参数是x转化为T类型后的变量,第二个值是一个布尔值,若为true则表示断言成功,为false则表示断言失败。
举个例子:
func main() {
var x interface{}
x = “Hello 沙河”
v, ok := x.(string)
if ok {
fmt.Println(v)
} else {
fmt.Println(“类型断言失败”)
}
}