package mainimport "fmt"var container = []string{"zero", "one", "two"}func main() { container := map[int]string{0: "zero", 1: "one", 2: "two"} fmt.Printf("The element is %q.\n", container[1])}
怎样在打印变量container的元素之前,判断它的类型呢?
答案是:使用类型断言
表达式。语法是 x.(T)
x
就是要判断类型的变量,x
在当下必须是接口类型的。T
就是断言的变量类型。 在Go语言中,interface{}
代表空接口。任何类型都是空接口的实现类型。
value, ok := interface{}(container).([]string)
上面这行代码,:=
右边,是x.(T)
:类型断言表达式的应用。应为container不是接口类型,需要转换一下类型。
断言表达式的结果赋值给 value和ok两个变量。