gpt4 book ai didi

julia - 如何在 Julia 中使用向量作为类型参数

转载 作者:行者123 更新时间:2023-12-01 09:56:13 25 4
gpt4 key购买 nike

这类似于我的 previous question , 但有点复杂。

在我定义一个带有关联整数作为参数的类型之前,Intp{p}。现在我想定义一个使用向量作为参数的类型。

以下是我能写的最接近我想要的内容:

type Extp{g::Vector{T}}
c::Vector{T}
end

换句话说,Extp 应该相对于 Vector g 定义,我希望内容 c 是另一个 Vector,其条目应该与 g 的条目类型相同。

嗯,这行不通。

问题1:我认为我不能在类型参数中使用::。

问题 2:我可以通过任意设置 g 和 c 的类型并确保向量中的类型在构造函数中匹配来解决这个问题。但是,即使我把所有东西都拿出来用

type Extp{g}
c
end

它似乎仍然不喜欢这样。当我尝试以我想要的方式使用它时,

julia> Extp{[1,1,1]}([0,0,1])

ERROR: type: apply_type: in Extp, expected Type{T<:Top}, got Array{Int64,1}

那么,Julia 是否只是不喜欢与类型相关联的特定向量?我尝试做的事情是否只适用于整数,就像我的 Intp 问题一样?

编辑:在文档中我看到类型参数“可以是任何类型(或者是整数,实际上,尽管这里它被明确用作类型)。”这是否意味着我要问的是不可能的,只有类型和整数适用于 Type 参数?如果是这样,为什么? (是什么让整数以这种方式在 Julia 中优于其他类型?)

最佳答案

在 Julia 0.4 中,您可以使用任何“bitstype”作为类型的参数。但是,矢量不是位类型,因此这行不通。最接近的模拟是使用元组:例如,(3.2, 1.5) 是一个完全有效的类型参数。

从某种意义上说,向量(或任何可变对象)与类型是对立的,后者在运行时不能改变。

关于julia - 如何在 Julia 中使用向量作为类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26330250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com