1. 程式人生 > >怎樣判斷一個變數的型別?

怎樣判斷一個變數的型別?

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的元素之前,判斷它的型別呢?

答案是:使用型別斷言表示式。語法是 x.(T)

x就是要判斷型別的變數,x在當下必須是介面型別的。T就是斷言的變數型別。 在Go語言中,interface{}代表空介面。任何型別都是空介面的實現型別。

value, ok := interface{}(container).([]string)

上面這行程式碼,:=右邊,是x.(T):型別斷言表示式的應用。應為container不是介面型別,需要轉換一下型別。

斷言表示式的結果賦值給 value和ok兩個變數。