假设我有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
朱莉娅有办法做到这一点吗?
由于
答案 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