Hatena::Grouprubyist

mr-80bの日記

2006-05-21

設定変更

パブリックにしていなかったみたいなので設定変更しました。

変数

Rubyist - バリケンRuby日記 - Rubyの「変数」再考

http://rubyist.g.hatena.ne.jp/muscovyduck/20060521/p1

非常にわかりやすい解説です。

irb(main):001:0> a="aaa"
=> "aaa"
irb(main):002:0> b=a
=> "aaa"
irb(main):003:0> a.chop!
=> "aa"
irb(main):004:0> b
=> "aa"
irb(main):005:0> exit

うむうむ、たしかに期待通りの動きをしてくれています。

irb(main):001:0> a="aaa"
=> "aaa"
irb(main):002:0> b=a
=> "aaa"
irb(main):003:0> a=a+"bbb"
=> "aaabbb"
irb(main):004:0> b
=> "aaa"
irb(main):005:0> puts b
aaa
=> nil

うん?

irb(main):001:0> a="aaa"
=> "aaa"
irb(main):002:0> b=a
=> "aaa"
irb(main):003:0> a="bbb"
=> "bbb"
irb(main):004:0> puts b
aaa
=> nil

うーむ…


というわけで、僕の理解はこの程度なわけですが、改めてよく考えてみると、

a="bbb"

とした時点で、

  • aというラベルを"aaa"からはがして、"bbb"に貼り付けている
  • bは相変わらず"aaa"にはりついたまま

というような状況になっている、と解釈すればよいように思われます。