【问题标题】:What is the meaning of a dynamic type of some value in go?go中某个值的动态类型是什么意思?
【发布时间】:2013-12-29 09:15:39
【问题描述】:

考虑到静态类型语言,那么动态类型的一些值是什么意思?

【问题讨论】:

    标签: go types 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
    猜你喜欢
    • 1970-01-01
    • 2015-01-03
    • 2013-05-10
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多