himitsu girlsの日記

 | 

2006-07-16

[]4章 オブジェクトの同一性

ポインタみたいなもんだなぁ、たぶん。

str1 = "foo"
str2 = str1
str3 = "f" + "o" + "o"
p str1.object_id
p str2.object_id
p str3.object_id

## idが同じかどうかはequal?メソッドで判定
p str1.equal?(str2)       # true
p str1.equal?(str3)       # false

## オブジェクトの値が等しいか
p str1 == str3            # true

## eql?は==と大抵同じ振る舞いをするが
## eql?の方は、厳密に比較する。
p 1.0 == 1                # true   必要に応じて変換
p 1.0.eql?(1)             # false  変換なし
hash = { 0 => "zero" }
p hash[0.0]               # nil
p hash[0]                 # "zero"

結果
134721432
134721432
134721372
true
false
true
true
false
nil
"zero"

hoge.eql? 1 でカッコを使いましょうというwarningが発生。

hoge.idを使うと、object_idを使いましょうというwarningが発生。

どちらも、将来使えなくなる模様。4章読了!!

[]IO#closeを忘れると(ry 追記

http://rubyist.g.hatena.ne.jp/himitsu_girls/20060715/p2

プログラムをちょっと変えてみたら、Errno::EMFILEという例外が発生。

15章を読むとopenできるファイル数には制限があると書いてあった。

たのしいRuby第2版が8月に出るみたいですね。うわー、出そうな予感はあったんだよなー。

もう一ヶ月早かったらorz うわー

トラックバック - http://rubyist.g.hatena.ne.jp/himitsu_girls/20060716
 |