Rubyの代入は名札貼り付け
人にRubyを教えるとき - 18 til i die (another phase)
・ 代入が実は代入ではないということ
箱ではなくて名札であると教えればよいと思う。なまじ「代入」という言葉を使うから混乱するんだろう。
名札というかポストイットか。貼って剥がせるもの。
# "hoge"という文字列に a という名札をつける。 a = "hoge" # 名札 a を剥し、a.upcaseの結果に張り替える。 a = a.upcase # => "HOGE" # "HOGE"という文字列に名札 a が貼ってある。 a # => "HOGE" # 破壊的メソッドの例 b = "foo" # => "foo" # 名札 b が貼ってある文字列を書き換える。 b.upcase! # 名札の中身が変わった。 b # => "FOO"