0
在下面的例子:本地和區分範圍規則的區別?
Fs = cell(2)
i = 1
for i = 1:2
local i # same as local i = i
Fs[i] =() -> i
end
println(Fs[1]()) # 1
println(Fs[2]()) # 2
println(i) # 1
- 難道
local i
相同local i = i
? 爲什麼我不能爲
while
循環做同樣的事情?Fs = cell(2) i = 1 while i <= 2 #LoadError: UndefVarError: i not define local i = i Fs[i] =()->i i += 1 end
但必須使用let
:
Fs = cell(2)
i = 1
while i <= 2
let i = i
Fs[i] =()->i
end
i += 1
end
println(Fs[1]()) # 1
println(Fs[2]()) # 2