julia - 我可以在 Julia 中专门化类型定义吗?

标签 julia

Julia 的参数类型真正定义了一系列包含不同内存布局的类型。我想知道这是否也适用于复合类型中的名称和字段数?一个简单的例子是这样的:

type mytype{Float64}
    a::Float64
    b::Float64
end

type mytype{Int64}
    a::Int64
end

这给了我重新定义 mytype 的错误.

在这里,我想有两个字段 if mytype的类型参数是 Float64如果是 Int64,则只有一个. (其实我想要的比较复杂,但这是一个基本的例子)。可以想象有抽象类型和 <:等在上面。

我意识到这在其他语言中可能是不可能的,但在我看来,编译器应该能够像函数可以专门化一样来解决这个问题。毕竟,真正的(已编译的)代码将涉及具体类型,并且编译器会知道所有内容。 (对于真正的动态类型,在这种情况下可能需要额外的封装层?)

也许有一种不同/更好的方式来实现类似的结果?

最佳答案

您可以分别定义这两种类型( mytypeFmytypeI )并定义一个新类型 mytype作为两者的结合。然后,真正可以静态确定它们收到的类型的函数将根据您的要求进行专门化。但我不确定这是明智的还是你真正想要的。

关于julia - 我可以在 Julia 中专门化类型定义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27858461/

相关文章:

julia - 将矩阵的行/列提取到单独的变量中

arrays - 在 Julia 中将 Array{Array{Float64,1},1} 转换为 Array{Float64,2}

performance - Julia - CartesianIndices 的性能

julia - 使用@eval 在文档字符串中进行元编程

julia - 就地更新函数参数

arrays - 使用字素与分割的 UTF-8 字符串数组

optimization - 在最小化向量时,如何防止一个值超过向量中的另一个值?

julia - 是否可以在 Julia 中 reshape 稀疏数组?

julia - 为什么 push!() 向 Set 添加重复元素?

julia - 在使用正则表达式引用列的同时在 GroupedDataFrame 上使用 combine Julia 函数