类型断言:在Go语言中,类型断言是应用于接口值的操作。换句话说,类型断言是提取接口值的过程。
语法:
a.(T)
在这里,a是接口的值或表达式,T是也称为类型断言的类型。类型断言用于检查其操作数的动态类型是否匹配已断言的类型。如果T是具体类型,则类型断言检查a的给定动态类型是否等于T,这里,如果检查成功进行,则类型断言返回a的动态值。否则,如果检查失败,则操作将出现panic异常。如果T是接口类型,则类型断言检查满足T的给定动态类型,这里,如果检查成功进行,则不提取动态值。
输出:
值为: nhooo
在上面的示例中,如果将val:= a。(string)语句更改为val:= a。(int),则程序会抛出panic异常。因此,为了避免此问题,我们使用以下语法:
value, ok := a.(T)
在这里,如果a的类型等于T,则该值包含a的动态值,并且ok将设置为true。并且如果a的类型不等于T,则ok设置为false并且value包含零值,并且程序不会抛出panic异常。如下面的程序所示:
输出:
98.09 true 0 false