2014-06-25 39 views
6

Julia'da bazı bileşik türlerim olduğunu varsayalım. Öğeleri tanımsız olduğu için değerleri diziye atayamamayı anlıyorum.Julia'da başlatılmamış diziler

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 

bu başa standart yolu nedir: Örneğin kod

type struct 
    u::Int64 
    v::Int64 
end 

X = Array(struct, 100) 
X[10].u = 3 

bu hatayı üretecektir? Şimdilik sadece şu gibi bir şey yapıyorum:

samples = Array(Sample1d, num_samples) 
fill!(samples, Sample1d(0, 0, 0)) 
samples[i] = ... 

Bunu yapmanın daha özlü veya Julian yolu var mı?

cevap

1

Dizilerdeki başlatılmamış konumlara değerler atayabilirsiniz. Henüz başlatılmamış konumlardan değerler çıkaramazsınız.

5

oluşturabilir ve aynı zamanda bir dizi doldurmak için fill kullanabilirsiniz:

type struct 
    u::Int 
    v::Int 
end 

struct() = struct(0, 0) 
X = fill(struct(), 100) 
X[10].u = 3