有没有办法获得指向Julia变量的集合?

时间:2016-09-20 20:17:54

标签: pointers collections julia local-variables

假设我有3个变量R1,R2和R3。我想要一个指向变量的Dictionary(或其他集合),这样如果我修改变量,它也会改变Dictionary中的值。

基本上我想做这样的事情:

R1 = 0.0
R2 = 0.0
R3 = 0.0

D = Dict(1=>R1, 2=>R2, 3=>R3)

D[1]
output> 0.0

R1 = 1.0

D[1]
output> 1.0

朱莉娅有办法做到这一点吗?

由于

2 个答案:

答案 0 :(得分:7)

你可以让他们Ref

R1 = Ref(0.0)
R2 = Ref(0.0)
R3 = Ref(0.0)

D = Dict(1=>R1, 2=>R2, 3=>R3)

D[1][]  # output> 0.0

R1[] = 1.0

D[1][]  # output> 1.0

Ref就像指针一样。分配到它们的语法是ref[] = x,获取它们的值的语法是ref[]。因此,请确保您不要忘记[]

答案 1 :(得分:4)

你也可以使用一个可变对象并改变它而不是分配它。 e.g。

R1 = [0.];
R2 = [0.];
R3 = [0.];
D = Dict(1=>R1, 2=>R2, 3=>R3);
D[1] #> 0.0
R1[1] = 1.  # or just R1[] = 1. since empty brackets reference first element
D[1] #> 1.0