Julia 如何将值放入结构的子记录中?

Julia 如何将值放入结构的子记录中?,julia,Julia,如果需要在Julia中的子结构中输入值,怎么可能? 例如,我有这个结构 struct individual position cost end pop = [individual(rand(0:1,10),[]) for i in 1:2] 如果位置将在代码中更改为此值x=[0,2,0,0,2,0,0,2,2] 怎么可能呢 如果追加!()被使用 但是我想要这个 individual([0, 2, 0, 0, 2, 0, 0, 2, 2, 2], Any[]) 你能帮帮我吗

如果需要在Julia中的子结构中输入值,怎么可能? 例如,我有这个结构

struct individual
    position
    cost
end

pop = [individual(rand(0:1,10),[]) for i in 1:2]

如果位置将在代码中更改为此值
x=[0,2,0,0,2,0,0,2,2]

怎么可能呢

如果追加!()被使用

但是我想要这个

individual([0, 2, 0, 0, 2, 0, 0, 2, 2, 2], Any[])

你能帮帮我吗。非常感谢

请在添加
x
之前清空容器,如下所示:

append!(empty!(pop[1].position), x)
julia> mutable struct individual
           position
           cost
       end

julia> pop = [individual(rand(0:1,10),[]) for i in 1:2]
2-element Array{individual,1}:
 individual([1, 1, 1, 1, 0, 0, 0, 0, 0, 1], Any[])
 individual([0, 0, 0, 1, 0, 1, 1, 1, 1, 1], Any[])

julia> x=[0, 2, 0, 0, 2, 0, 0, 2, 2, 2]
10-element Array{Int64,1}:
 0
 2
 0
 0
 2
 0
 0
 2
 2
 2

julia> pop[1].position = x
10-element Array{Int64,1}:
 0
 2
 0
 0
 2
 0
 0
 2
 2
 2

julia> pop
2-element Array{individual,1}:
 individual([0, 2, 0, 0, 2, 0, 0, 2, 2, 2], Any[])
 individual([0, 0, 0, 1, 0, 1, 1, 1, 1, 1], Any[])
或者将
individual
定义为可变的,然后您可以像这样简单地使用赋值:

append!(empty!(pop[1].position), x)
julia> mutable struct individual
           position
           cost
       end

julia> pop = [individual(rand(0:1,10),[]) for i in 1:2]
2-element Array{individual,1}:
 individual([1, 1, 1, 1, 0, 0, 0, 0, 0, 1], Any[])
 individual([0, 0, 0, 1, 0, 1, 1, 1, 1, 1], Any[])

julia> x=[0, 2, 0, 0, 2, 0, 0, 2, 2, 2]
10-element Array{Int64,1}:
 0
 2
 0
 0
 2
 0
 0
 2
 2
 2

julia> pop[1].position = x
10-element Array{Int64,1}:
 0
 2
 0
 0
 2
 0
 0
 2
 2
 2

julia> pop
2-element Array{individual,1}:
 individual([0, 2, 0, 0, 2, 0, 0, 2, 2, 2], Any[])
 individual([0, 0, 0, 1, 0, 1, 1, 1, 1, 1], Any[])