Julia中未初始化的数组

Arr*_*igo 6 arrays julia

假设我在Julia中有一些复合类型的数组.我知道我不能简单地将值赋给数组,因为它的元素是未定义的.例如代码

type struct
  u::Int64
  v::Int64
end

X = Array(struct, 100)
X[10].u = 3
Run Code Online (Sandbox Code Playgroud)

将生成此错误:

ERROR: access to undefined reference
 in getindex at array.jl:277
 in include at boot.jl:238
 in include_from_node1 at loading.jl:114
Run Code Online (Sandbox Code Playgroud)

处理这个问题的标准方法是什么?现在我只是在做类似的事情:

samples = Array(Sample1d, num_samples)
fill!(samples, Sample1d(0, 0, 0))
samples[i] = ...
Run Code Online (Sandbox Code Playgroud)

有没有更简洁或朱利安的方式来做到这一点?

Mr *_*pha 5

您可以使用fill同时创建和填充数组:

type struct
  u::Int
  v::Int
end

struct() = struct(0, 0)
X = fill(struct(), 100)
X[10].u = 3
Run Code Online (Sandbox Code Playgroud)


Joh*_*ite 2

您可以将值分配给数组中未初始化的位置。您只是无法从未初始化的位置提取值。