2013-12-11 28 views

回答

29

變量的「動態類型」在處理接口值時很重要。 動態類型被定義爲如下(source):

變量的靜態類型(或只是型)是由它的聲明中定義的類型。 接口類型的變量也具有不同的動態類型,這是運行時變量中存儲的值的實際類型。動態類型在執行期間可能會有所不同,但始終可以分配給接口變量的靜態類型。對於非接口類型,動態類型始終是靜態類型。

考慮這個例子:

var someValue interface{} = 2 

靜態類型的someValueinterface{}但動態類型是int並可能在未來很 很好的變化。例如:

var someValue interface{} = 2 

someValue = "foo" 

在上述從int變爲string動態類型的someValue的例子。

+1

+1,這是關鍵點:'對於非接口類型,動態類型始終是靜態類型'。 – tarrsalah