定数は破壊可能
さっきRubyを書いていて引っ掛かったところをメモ。
Rubyでも定数を定義することが出来るのだけど、この定数は破壊的メソッドを使えば変更できてしまう。警告も例外も飛んでこない。
CONSTANT = "string" a = CONSTANT p [a, CONSTANT] # => ["string", "string"] CONSTANT.succ! p [a, CONSTANT] # => ["strinh", "strinh"] a.succ! p [a, CONSTANT] # => ["strini", "strini"] CONSTANT = "another string" # => test.rb:13: warning: already initialized constant CONSTANT
常識だったらごめんなさい。でもこれ、気を付けていないとまた引っ掛かりそうだ。