go中某个值的动态类型的含义是什么?
考虑到这是一种静态类型的语言,某个值的动态类型的含义是什么?在处理接口值时,变量的“动态类型”很重要。 动态类型的定义如下(): 变量的静态类型(或只是类型)是由其声明定义的类型接口类型的变量也有不同的动态类型,这是在运行时存储在变量中的值的实际类型。动态类型在执行期间可能会有所不同,但始终可分配给接口变量的静态类型。对于非接口类型,动态类型始终是静态类型 考虑这个例子:go中某个值的动态类型的含义是什么?,go,types,Go,Types,考虑到这是一种静态类型的语言,某个值的动态类型的含义是什么?在处理接口值时,变量的“动态类型”很重要。 动态类型的定义如下(): 变量的静态类型(或只是类型)是由其声明定义的类型接口类型的变量也有不同的动态类型,这是在运行时存储在变量中的值的实际类型。动态类型在执行期间可能会有所不同,但始终可分配给接口变量的静态类型。对于非接口类型,动态类型始终是静态类型 考虑这个例子: var someValue interface{} = 2 someValue的静态类型是interface{},而动态类
var someValue interface{} = 2
someValue
的静态类型是interface{}
,而动态类型是int
,可能非常复杂
未来会有变化。例如:
var someValue interface{} = 2
someValue = "foo"
在上面的示例中,
someValue
的动态类型从int
更改为string
+1,这是关键点:对于非接口类型,动态类型始终是静态类型
。