我刚刚开始使用Julia。据我所知,Julia允许您在一行上声明多个for循环。
例如:
for i = 1:2, j = [-1,-2]
println((i, j))
end
将导致以下情况:
(1,-1)
(1,-2)
(2,-1)
(2,-2)
我现在正在做类似的事情,但同时循环浏览字典。我声明如下:
rename = function(x)
x["num"] = -x["num"]
x
end
players1 = [["num" => 1],["num" => 2]]
players2 = map(rename, copy(players1)) # = [["num" => -1],["num" => -2]]
奇怪的是,对我来说,当我这样做的时候:
for i=players1, j=players2
println(i, j)
end
为什么我不得到这个输出?
["num"=>1]["num"=>-1]
["num"=>1]["num"=>-2]
["num"=>2]["num"=>-1]
["num"=>2]["num"=>-2]
啊。在这种情况下,map
功能仍然需要deepcopy
。
这段代码似乎确实有效。
rename = function(x)
x["num"] = -x["num"]
x
end
players1 = [["num" => 1],["num" => 2]]
players2 = map(rename, deepcopy(players1))
for i=players1, j=players2
println(i, j)
end