Go 类型断言使用

9 min read

Go 类型断言用于检查接口值的类型,并将其转换为指定的类型。它的语法如下:

value, ok := interfaceValue.(typeToCheck)
  • interfaceValue:需要检查类型的接口值。
  • typeToCheck:期望的类型。

当类型断言出现于一个 if 语句中时,它可以检查类型并且执行相应的操作。例如,如果你希望检查变量 a 是否为字符串类型并打印相关信息,可以使用以下代码:

if str, ok := a.(string); ok {
    fmt.Println("a 是一个字符串,其值为", str)
} else {
    fmt.Println("a 不是一个字符串")
}

在上面的例子中,变量 str 将被赋值为 a 的字符串值,并且 ok 变量将被设置为 true。如果 a 不是字符串类型,则 ok 的值将被设置为 false。

在类型断言时,如果被检查的变量不支持所期望的类型,则会产生运行时错误。因此,在使用类型断言时,应该仔细检查返回的 ok 值,以确保类型转换是可以:if ok { ... }