以下の問題の違いがわかりますか?
問1 以下のコードを実行するとどうなりますか。
MAX=10
print MAX
MAX=100
print MAX
問2 以下のコードを実行するとどうなりますか。
HOGE = "hoge"
HOGE.gsub!("hoge", "piyo")
print HOGE
2問ともRuby試験でお馴染みの定数警告の文法問題です。
答えは、
問1が10表示された後、警告が表示され100と表示される
問2が警告は発生せず、「piyo」が表示される
です。
この2つの問題の違いは、破壊的メソッドを使っているかということだけです。
問2は、破壊的メソッドを呼び出しているだけなので、警告は発生せず、文字列が置き換わっています。