バリケンのRuby日記 RSSフィード

2006-05-23

[] Object#object_idメソッド  Object#object_idメソッド - バリケンのRuby日記 を含むブックマーク はてなブックマーク -  Object#object_idメソッド - バリケンのRuby日記  Object#object_idメソッド - バリケンのRuby日記 のブックマークコメント

Rubyでは、オブジェクトが生成されると、それぞれのオブジェクトに対して固有のIDが振られるよ。

そして、オブジェクトに対してObject#object_idメソッドを使うと、そのIDを知ることができるよ。

これを利用すると、「String#+」メソッド「String#<<」メソッドの挙動の理解を深めることができるよ。


まずは「String#<<」メソッドだよ。

a = 'aaa'
a.object_id
b = a
b.object_id    #=> a.object_idと同じになる
a = a << 'bbb' #=> ちなみに a << 'bbb' とも書ける
a.object_id    #=> さっきと同じ
b.object_id    #=> やっぱり同じ
puts a
puts b

次に「String#+」メソッドだよ。

a = 'aaa'
a.object_id
b = a
b.object_id    #=> a.object_idと同じになる
a = a + 'bbb'  #=> ちなみに a += 'bbb' とも書ける
a.object_id    #=> 変わっている!
b.object_id    #=> こっちは変わっていない
puts a
puts b

図解と比較してみてね。

secondlifesecondlife2006/05/23 09:55わかりやすい図付き解説ですばらしいですね!

muscovyduckmuscovyduck2006/05/23 10:05secondlifeさん>
ありがとうございます!

トラックバック - http://rubyist.g.hatena.ne.jp/muscovyduck/20060523