让我们通过一个简单的例子来理解类型断言的使用方法:
package main
import (
"fmt"
)
func main() {
var i interface{} = "hello"
// 正确的类型断言
s := i.(string)
fmt.Println(s) // 输出: hello
// 使用ok来避免panic
f, ok := i.(float64)
if ok {
fmt.Println(f)
} else {
fmt.Println("i不是float64类型")
}
}
在这个例子中,我们首先将一个字符串赋值给接口变量 i
。然后我们尝试将 i
断言为 string
类型,这是正确的,因为 i
存储的确实是字符串。接着我们使用带 ok
的形式来安全地检查 i
是否可以被断言为 float64
类型,由于它不是,所以 ok
为 false
,程序不会 panic。