犬も歩けばエンジニアになる

プログラミングや数学や物理に関する技術メモ

Julia - for文内でよく起きるUndefVarErrorの対処法

JuliaのFor文内でUndefVarErrorが出る場合

Juliaで誰もが一度は遭遇するのがUndefVarErrorです。

ERROR: LoadError: UndefVarError: num not defined

Pythonや他の言語を勉強した人がJuliaでコードを書くと、あれっとなる場所でこのエラーが起こります。 例を上げてみましょう。

NG例

num = 0  
for i=1:10  
  num += i 
end                     
print(num)

ぱっと見これで問題なさそうですが、Juliaでこれは動きません。

Juliaでは、グローバル変数をスコープ内で扱う場合には明示的にglobal修飾子をつける必要があるのです。

OK例

num = 0  
for i=1:10  
  global num += i  # ここにglobalが必要!
end                     
print(num)


グローバル変数とローカル変数のさらに詳しい記事も書きましたので、ぜひ読んでみてください!

segas.hatenablog.com