[Ruby] class/module name must be CONSTANT

Ruby でコードを書いていたら「class/module name must be CONSTANT」とかいうエラーが。 調べてみたら、Class,Module名は大文字からはじまらないといけないらしい。 すっかり覚えていなかった、というか、シンボル名にそんな制約付けるなよ、とかちょっと思ったり。

例えば、小文字から始まるクラス名を使うと


irb(main):001:0> class aAA; end
SyntaxError: (irb):1: class/module name must be CONSTANT
class aAA; end
^
from /usr/bin/irb:12:in `<main>'


また、数値から始まるクラス名もダメ


irb(main):002:0> class 1A; end
SyntaxError: (irb):2: syntax error, unexpected tCONSTANT, expecting tCOLON2 or '[' or '.'
class 1A; end
^
(irb):2: syntax error, unexpected keyword_end, expecting $end
from /usr/bin/irb:12:in `<main>'


大文字から始まるクラス名はOK


irb(main):003:0> class Aa; end
=> nil

 

あと、後方参照を前方参照と勘違いして、検索してもなかなか知りたい情報にありつけなかったり。

コメント

このブログの人気の投稿

大型特殊自動車免許を取った時の話。

パスワードを覚えるのも無理があるから、パスワードマネージャ使いましょう。

ICOM IC-7300 と RS-BA1 Version 2 でリモート操作