Julia : LoadError: UndefVarError: X not defined
Julia : LoadError: UndefVarError: X not defined
我在 Julia 中有一个简单的代码:
X = 1.0
for i=1:3
X = X*i
end
println("X = ",X)
抛出错误:LoadError: UndefVarError: X not defined
为什么会这样?
如何在 Julia 中定义一个简单的变量?
同时抛出警告:
Warning: Assignment to `X` in soft scope is ambiguous because a global variable by the same name exists: `X` will be treated as a new local. Disambiguate
by using `local X` to suppress this warning or `global X` to assign to the existing global variable.
here also asked
我认为您是在没有任何功能的普通文件中执行此代码。
这意味着 X 是在主范围内声明的,即全局范围。这是一种特殊情况,因为可以从代码中的任何位置“看到”此变量。
但是,通过创建 for
块,您将创建一个与全局变量具有相同标签的局部变量。这对编译器来说是模棱两可的,它不知道您是尝试创建一个新变量还是使用全局变量。为了消除歧义,local
或 global
关键字在此处指定您要执行的操作。
要解决您的问题而无需指定全局或局部(和 avoid performance issues),您只需在函数内声明代码即可。这样你的变量 X
已经是本地的:
function myfactorial()
X = 1.0
for i in 1:3
X = X*i
end
println("X = $X")
end
我在 Julia 中有一个简单的代码:
X = 1.0
for i=1:3
X = X*i
end
println("X = ",X)
抛出错误:LoadError: UndefVarError: X not defined
为什么会这样?
如何在 Julia 中定义一个简单的变量?
同时抛出警告:
Warning: Assignment to `X` in soft scope is ambiguous because a global variable by the same name exists: `X` will be treated as a new local. Disambiguate
by using `local X` to suppress this warning or `global X` to assign to the existing global variable.
here also asked
我认为您是在没有任何功能的普通文件中执行此代码。 这意味着 X 是在主范围内声明的,即全局范围。这是一种特殊情况,因为可以从代码中的任何位置“看到”此变量。
但是,通过创建 for
块,您将创建一个与全局变量具有相同标签的局部变量。这对编译器来说是模棱两可的,它不知道您是尝试创建一个新变量还是使用全局变量。为了消除歧义,local
或 global
关键字在此处指定您要执行的操作。
要解决您的问题而无需指定全局或局部(和 avoid performance issues),您只需在函数内声明代码即可。这样你的变量 X
已经是本地的:
function myfactorial()
X = 1.0
for i in 1:3
X = X*i
end
println("X = $X")
end