GO 断言时不能只接收一个参数
DEMO
package main
import "fmt"
func GetString() interface{} {
return "abc"
}
func main() {
// 不显式声明断言的第二个参数 当断言失败时 会panic
str := GetString().(int) // panic: interface conversion: interface {} is string, not int
fmt.Println(str)
// 显式声明断言的第二个参数 或者 使用"_" 都不会引起panic
value1, _ := GetString().(int)
value2, ok := GetString().(int)
fmt.Println(value1, value2, ok)
}