面试题答案
一键面试在Go语言中,当进行类型断言时,如果断言失败,可以使用comma-ok
形式优雅处理。示例代码如下:
package main
import (
"fmt"
)
func main() {
var i interface{} = "hello"
// 使用comma-ok形式进行类型断言
if s, ok := i.(string); ok {
fmt.Printf("断言成功,值为:%s\n", s)
} else {
fmt.Println("断言失败")
}
// 尝试断言为非预期类型
if num, ok := i.(int); ok {
fmt.Printf("断言成功,值为:%d\n", num)
} else {
fmt.Println("断言失败")
}
}
上述代码中,首先对interface{}
类型的变量i
进行类型断言,判断其是否为string
类型,如果是则打印值。接着尝试将i
断言为int
类型,因为i
实际为string
类型,所以这次断言会失败,程序会打印“断言失败”。通过comma-ok
形式,可以在断言失败时,避免程序崩溃,从而确保程序的健壮性。