参数数组长度,单位为Julia';s组合类型
我正在使用Julia的模块从文件中读取二进制数据 要读取100个值的列表,请使用以下参数数组长度,单位为Julia';s组合类型,julia,Julia,我正在使用Julia的模块从文件中读取二进制数据 要读取100个值的列表,请使用以下struct: @struct type MyType values::Array{Float64}[100] end 而且效果很好 但是,我想知道是否有一种方法可以参数化数组的长度。Julia的参数化类型只允许更改内部类型(即,在上面的示例中,我可以用另一种类型替换Float64) 我也试过: length=100 @struct type MyType values::Array{Float
struct
:
@struct type MyType
values::Array{Float64}[100]
end
而且效果很好
但是,我想知道是否有一种方法可以参数化数组的长度。Julia的参数化类型只允许更改内部类型(即,在上面的示例中,我可以用另一种类型替换Float64)
我也试过:
length=100
@struct type MyType
values::Array{Float64}[length]
end
这就产生了这个错误:
ERROR: TypeError: Test: in type definition, expected Type{T}, got Array{Float64,1}
有什么想法吗?您的问题是针对
StrPack
的。在Julia中,数组的类型仅限于元素类型及其秩。(秩是它有多少索引的计数。)StrPack
包使用@struct
宏在数组
声明后查找[number]
,并手动为其创建适当的位
类型。您试图做的是这样的:
@struct type MyType{n}
values::Array{Float64}[n]
end
不幸的是,
StrPack
的@struct
宏根本不支持类型参数,它将阻塞MyType{n}
,因为它无法正确命名类型。此时,数组维度已参数化,但数组长度未参数化。关于固定大小阵列的特殊阵列类型,有一些讨论,但AFAIK还没有人参与这项任务。讨论开始了