south37の日記

ちょろっとメモりたい事とかを書く用。もうちょっとちゃんとしたブログもあります。http://south37.hatenablog.com/

rubyのシンボル、特に大文字と小文字について

単純に疑問に思ったんですが。 シンボル生成のリテラルである:を使うとき、定数の先頭に二個続けるとその定数の中身が返ってくるっぽいんですが、これは仕様と思っていいんですかね?

Constant = 10
:Constant  // :Constant (シンボルが返ってくる)
::Constant // 10        (定数の中身が返ってくる)

ちょろっと調べてみても分からない...

ちなみに、普通の変数の場合はエラーが出ました。

a = 10
:a  // :a
::a // SyntaxError: unexpected tIDENTIFIER, expecting tCONSTANT

定数を使えって怒られてますね。