1
我在使用DataArrays.DataArray時遇到了一個與Julia有關的奇怪問題。本地作用域和DataArrays.DataArray
我將嘗試使用從官方文檔的例子(簡體)來形容我的問題:
x = 1
function bar()
x = 10 # local
println(x) # 10
return 1
end
bar();
println(x) # 1
這個函數改變x的局部值,但不改變其在全球價值。
現在,讓我們說我有以下幾點:
using DataFrames;
x = @data([1 2 3 4 5 6 7 8 9 10]);
function bar()
x[1,1] = 1000000 # local
println(x[1, 1]) # 1000000
return 1
end
bar();
println(x[1, 1]) # it should be 1, but it is 1000000
能否請您解釋,爲什麼是這樣的話,我怎麼可以讓朱莉婭表現是否正常?
好的,我明白了。即使我讓酒吧接受x作爲論點,我仍然有疑問,因爲我有同樣的問題。在這種情況下,功能欄應該有一個本地版本的x,不是嗎?爲什麼它仍然訪問全局x? – merch
nope,函數可以改變它們的參數。如果你想明確地創建一個本地版本,然後添加本地之前,即'本地x =「任何」' –
好吧,謝謝你的幫助! – merch