GO 类型断言
时间: 2023-09-06 12:08:43 浏览: 50
实例学习Golang–接口(二、空接口和类型断言)
在 Go 中,类型断言是一种用于检查接口值的实际类型的机制。它可以将接口值转换为其基础类型或其它接口类型。类型断言语法如下:
```
value, ok := interfaceVar.(Type)
```
其中,interfaceVar 是一个接口变量,Type 是一个类型。如果接口变量 interfaceVar 的实际类型与 Type 相同,则 value 将是一个具有该类型的变量,并且 ok 的值为 true。否则,value 的值将是该类型的零值,并且 ok 的值为 false。
例如,假设我们有一个接口变量 var1,它的实际类型是 int。我们可以使用类型断言将其转换为 int 类型并将其存储在一个新的变量中,如下所示:
```
var1 := 10
value, ok := var1.(int)
if ok {
fmt.Printf("value is %d\n", value) // 输出:value is 10
}
```
如果我们尝试将接口变量 var1 转换为 string 类型,由于实际类型与 string 类型不匹配,因此 ok 的值将为 false,value 的值将是 string 类型的零值 "",如下所示:
```
var1 := 10
value, ok := var1.(string)
if ok {
fmt.Printf("value is %s\n", value)
} else {
fmt.Println("value is not a string")
}
```
阅读全文