Go语言类型断言提供对接口值的基础具体值的访问。

方式是:

t := i.(T)
iTTt
iT

为了测试接口值是否具有特定类型,类型断言可以返回两个值:基础值和报告断言是否成功的布尔值。方式:

t, ok := i.(T)
tT
map

下面是一个例子:

package main
import "fmt"
func main() {
	var i interface{} = "hello"

	s := i.(string)
	fmt.Println(s)

	s, ok := i.(string)
	fmt.Println(s, ok)

	f, ok := i.(float64)
	fmt.Println(f, ok)

	f = i.(float64) // panic
	fmt.Println(f)
}