2018年11月26日月曜日

ruby で dynamic constant assignment エラー

rubyでコードを書いて動かしたら dynamic constant assignment エラーが出た.
書いたのはこんなコード

for Nnum in 1..NEURONS do

エラーメッセージでググると,「rubyはメソッド内では定数の定義ができない」というのがたくさん出てきた.しかしメソッド内で定数を定義した訳ではない.よく分からなくて,NEURONSが悪いのだろうとこれを小文字にしてみたりしてみたが直らず.延々(2時間くらい)悩んでふと気付いた.ループ変数Nnumの一文字めが大文字だ.rubyでは大文字で始まる変数は定数とするマナーがある.厳密な定数ではなくて,あとで代入できたりするが.さすがにループ毎に値が変わるループ変数に大文字から始まる名前は許されないようだ.きっちりシンタックスエラーになる.きっちり勉強しないで「20分ではじめるruby」だけ読んでコードを書き始めたのがよくなかった.

0 件のコメント:

コメントを投稿