nem*_*emo 34
处理接口值时,变量的"动态类型"很重要.动态类型定义如下(源):
变量的静态类型(或仅仅类型)是其声明定义的类型.接口类型的变量也有一个不同的动态类型,它是运行时存储在变量中的值的实际类型.动态类型可能在执行期间有所不同,但始终可分配给接口变量的静态类型.对于非接口类型,动态类型始终是静态类型.
考虑这个例子:
var someValue interface{} = 2
Run Code Online (Sandbox Code Playgroud)
静态类型someValue是interface{}动态类型,int并且可能在未来很好地改变.例:
var someValue interface{} = 2
someValue = "foo"
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,动态类型从someValue更改int为string.