golang类型断言及检测其是否断言成功
在 Golang 中,类型断言用于检查接口值的底层具体类型。类型断言的语法如下:
```
value, ok := interfaceVar.(typeName)
```
其中,`interfaceVar` 为接口类型的变量,`typeName` 为底层具体类型的名称。如果 `interfaceVar` 的底层类型是 `typeName`,则断言成功,返回 `value` 和 `true`;否则返回 `value` 的零值和 `false`。在类型断言中,通常使用 `if` 语句进行判断,例如:
```
if str, ok := var1.(string); ok {
// var1 的底层类型是 string
fmt.Println(str)
} else {
// var1 不是 string 类型
fmt.Println("var1 is not a string")
}
```
如果 `var1` 的底层类型是 string,则输出 `var1` 的值;否则输出错误信息。