Go 类型断言
二十六、类型断言
实例
type Point struct {
x int
y int
}
func main() {
var a interface{}
var point = Point{1,2}
a = point //空接口可以接收任意类型
var b Point
//将接口a赋值给结构体类型b,需要进行断言
b = a.(Point) //类型断言,表示判断a是否指向Point类型的变量,如果是就转成Point类型并赋值给b,否则报错
fmt.Println(b)
//类型断言(带检测的)
var x interface{}
var c float32 = 1.1
x = c
y,ok := x.(float32)
if ok {
fmt.Println("转换成功")
fmt.Println(y)
}else{
fmt.Println("转换失败")
}
}