2014-06-25 22 views
6

Giả sử rằng tôi có một số loại kết hợp trong Julia. Tôi hiểu rằng tôi không thể chỉ định giá trị vào mảng vì các phần tử của nó không được xác định. Ví dụ mãCác mảng chưa được khởi tạo trong Julia

type struct 
    u::Int64 
    v::Int64 
end 

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

sẽ tạo ra lỗi này:

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 

cách tiêu chuẩn để đối phó với điều này là gì? Hiện tại, tôi chỉ đang thực hiện một số việc như:

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

Có cách nào ngắn gọn hơn hoặc Julian để thực hiện việc này không?

Trả lời

1

Bạn có thể gán giá trị cho các vị trí chưa được khởi tạo trong mảng. Bạn chỉ không thể trích xuất các giá trị từ các vị trí chưa được khởi tạo.

5

Bạn có thể sử dụng fill để tạo ra và điền vào một mảng cùng một lúc:

type struct 
    u::Int 
    v::Int 
end 

struct() = struct(0, 0) 
X = fill(struct(), 100) 
X[10].u = 3 
Các vấn đề liên quan