關於Julia1.0及以後版本的for循環產生錯誤"ERROR: UndefVarError: variable not defined"的解決方法

目錄

一、錯誤

二、目前的解決方法

三、結語


一、錯誤

1.在Julia1.0版本中,定義在for循環之外的變量不能出現在for循環裏,否則會如下錯誤:

ERROR: UndefVarError: variable not defined

2.這個錯誤似乎是在0.7版本開始的,詳情可以看這個鏈接:https://github.com/JuliaLang/julia/issues/28789

3.例如如下代碼就會報錯:

n = 0
for i in 1:10
    n = i
end
print(n)

二、目前的解決方法

1.在for循環裏面聲明global,之後這個變量在for循環裏不用再聲明範圍

​
n = 0
for i in 1:10
    global n = i
end
print(n)

for i in 1:10
    n += i
end
print(n)
​

2.在for循環之前聲明global是無意義的,還是會報錯

3.使用這個也是沒用的:

using ​​​​​​​SoftGlobalScope

三、結語

1.從0.6升級到1.0的小夥伴,尤其是新手估計看到這裏感到很奇怪、很難受,但這確實在某種意義上使得代碼更加嚴謹。

2.由於Julia擁有很多數學計算工具庫以及使用方便的api,因此代碼中很難再看到自己寫代碼出現for循環的情況,因爲這可以通過其他方式進行處理(例如通過簡潔的寫法代替冗長的部分

3.Julia語言高效、動態,可組合性強,願它今後發展更加迅速,爲IT屆做出更大的貢獻吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章