nem*_*emo 34
处理接口值时,变量的"动态类型"很重要.动态类型定义如下(源):
变量的静态类型(或仅仅类型)是其声明定义的类型.接口类型的变量也有一个不同的动态类型,它是运行时存储在变量中的值的实际类型.动态类型可能在执行期间有所不同,但始终可分配给接口变量的静态类型.对于非接口类型,动态类型始终是静态类型.
考虑这个例子:
var someValue interface{} = 2
someValueinterface{}int
var someValue interface{} = 2
someValue = "foo"
someValueintstring
- +1,这是关键点:对于非接口类型,动态类型始终是静态类型。 (2认同)