package main import "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的元素以前,判斷它的類型呢?code
答案是:使用類型斷言
表達式。語法是 x.(T)
接口
x
就是要判斷類型的變量,x
在當下必須是接口類型的。T
就是斷言的變量類型。 在Go語言中,interface{}
表明空接口。任何類型都是空接口的實現類型。element
value, ok := interface{}(container).([]string)
上面這行代碼,:=
右邊,是x.(T)
:類型斷言表達式的應用。應爲container不是接口類型,須要轉換一下類型。string
斷言表達式的結果賦值給 value和ok兩個變量。class