go中某个值的动态类型是啥意思?
Posted
技术标签:
【中文标题】go中某个值的动态类型是啥意思?【英文标题】:What is the meaning of a dynamic type of some value in go?go中某个值的动态类型是什么意思? 【发布时间】:2013-12-29 09:15:39 【问题描述】:考虑到go 是静态类型语言,那么动态类型的一些值是什么意思?
【问题讨论】:
【参考方案1】:在处理接口值时,变量的“动态类型”很重要。 动态类型定义如下(source):
变量的静态类型(或只是类型)是由其声明定义的类型。 接口类型的变量也有一个独特的动态类型,它是运行时变量中存储的值的实际类型。动态类型在执行过程中可能会发生变化,但始终可以分配给静态类型接口变量。对于非接口类型,动态类型始终是静态类型。
考虑这个例子:
var someValue interface = 2
someValue
的静态类型为interface
,但动态类型为int
,可能非常
好在未来改变。示例:
var someValue interface = 2
someValue = "foo"
在上面的示例中,someValue
的动态类型从 int
更改为 string
。
【讨论】:
+1,这是重点:For non-interface types, the dynamic type is always the static type
。以上是关于go中某个值的动态类型是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章