Julia 的参数类型实际上定义了一系列包含不同内存布局的类型。我想知道这是否也适用于复合类型中的字段名称和数量?一个简单的例子如下:
type mytype{Float64}
a::Float64
b::Float64
end
type mytype{Int64}
a::Int64
end
这给了我重新定义的错误mytype
.
在这里,我想要两个字段,如果mytype
的类型参数是Float64
如果是的话,只有一个Int64
。 (实际上我想要的更复杂,但这是一个基本的例子)。人们可以想象有抽象类型和<:
等上述内容。
我意识到这在其他语言中可能是不可能的,但对我来说,编译器应该能够以与函数专门化相同的方式来解决这个问题。毕竟,真实的(编译的)代码将涉及具体类型,并且编译器将知道所有内容。 (对于真正的动态类型,在这种情况下也许需要额外的封装层?)
也许有不同/更好的方法来实现类似的结果?
您可以分别定义这两种类型(mytypeF
& mytypeI
) 并定义一个新类型mytype
作为两者的结合。然后,真正可以静态确定它们收到的类型的函数将根据您的要求进行专门化。但我不确定这是否明智或您真正想要的是什么。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)