该怎么返回 for 循环中的变量

我在群里已经看到了这部分的讨论,并且查了文档,有一句 “全局变量只能通过读来继承,而不能通过写来继承”,但是有时候确实想从外部定义一个变量,然后 for 循环赋值,最终得到该变量,如下面的问题描述中目的是得到 a 等于 10 的值,有什么好的方法(除了 global 声明)?

问题描述

julia> a = 0.1;

julia> for ii = 1:10
           a = ii
       end

julia> a
0.1

XREF

REPL中的变量是全局变量,改变全局变量,需要加global 才行。
也可以将整个代码放在let 代码块中,这样a值就可以改变了。

1 个赞

我比较倾向于使用函数,然后用 local

function main()
   local a
   for ii = 1:10 
       a = ii   
   end
   a
end

x = begin
local a = 0
for i in 1:10
a = i
end
a
end