定数への代入

リファレンスマニュアルより

ruby 1.8 feature: `::' 演算子を用いた定数への代入が可能になりました。

例:
module M
  I = 35
  class C
  end
end
p M::I   #=> 35
p M::C   #=> M::C
p ::M    #=> M

M::NewConst = 777   # error--> parse error

知らなかった。


irbで試した結果。

$ irb
irb(main):001:0> class Hoge
irb(main):002:1> HOGE = 1
irb(main):003:1> end
=> 1
irb(main):004:0> Hoge::HOGE
=> 1
irb(main):005:0> Hoge::HOGE = 2
(irb):5: warning: already initialized constant HOGE
=> 2
irb(main):006:0> Hoge::HOGE
=> 2