小编Sun*_*dar的帖子

Julia 函数内字典值的重新分配

Julia 的新手,因此,可能是一个基本问题。

x = 1
function someFn()
   print(x)
   x = 3 
end
Run Code Online (Sandbox Code Playgroud)

这会在 print(x) 处引发错误,因为在函数内部看不到全局 x 内部。这是有道理的。

x = [1,2]
function someFn()
   print(x)
   x[1] = 4
end
print(x)
Run Code Online (Sandbox Code Playgroud)

这里 print(x) 能够看到全局数组 x 并且 x[1]=4 全局更改全局 x 的值。当我制作 xa 字典时观察到类似的行为。

三问

  1. 变量/数组的这种行为及其在函数内的作用域是否与 Julia 的工作方式一致?
  2. 当 x 是一个数组时,即使没有将引用作为输入传递给函数,它在函数内部也是可见的。这样对吗?
  3. 此外,更改数组中条目的值会全局反映。这是因为 Julia 将数组 x 视为无处不在的引用吗?

arrays dictionary scope function julia

5
推荐指数
1
解决办法
187
查看次数

标签 统计

arrays ×1

dictionary ×1

function ×1

julia ×1

scope ×1