GO 断言时不能只接收一个参数

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)

}

上一篇:Go语言基础之内置函数


下一篇:Golang的panic和recover