Julia 如何将值放入结构的子记录中?
如果需要在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[]) 你能帮帮我吗
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[])