在 Julia 中,函数中的所有变量赋值默认都是局部的,但您可以使用global
关键字来赋值给全局变量。如何将变量分配给外部但非全局范围?
问问题
248 次
2 回答
3
目前没有任何方法可以做到这一点。我们偶尔讨论过它,因为它是你不能做的一个范围界定行为,但我还没有看到一个真正令人信服的理由需要它。你是否有一个?
于 2013-12-19T04:17:54.597 回答
0
我想生成一些代码并使用 include_string 命令执行它:
不幸的是,'global' 关键字实际上对定义模块的文件(在模块 def 之外)范围内的变量没有任何影响。如果一个变量的范围在模块之外,In My Hands,只将它直接传递给函数,就可以访问它。
像这样:
module my_mod
function IDontWork(x:int)
global mp
include_string("Show(mp)")
end #function IDontWork
function IWork(x:int, mp::Minipipe)
include_string("Show(mp)")
end #function IWork
function Show(mp::Minipipe)
println(mp.txt)
end #Show
end #my_mod
#mp declared in global scope:
mp = Minipipe()
#FAILS:
my_mod.IDontWork(2)
#Only Way it WORKS:
my_mod.IWork(2, mp)
我的回答也是一个问题:我在这里正确使用了 global 关键字吗?有一个更好的方法吗??
于 2014-03-25T19:09:51.657 回答