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"