A Day in the Life

Ruby の Object#hash

Ruby の Object#hash

nil.hash したら 4 だったので調べてみた。

$ ruby --version
ruby 1.8.7 (2009-06-12 patchlevel 174) [i486-linux]

puts ObjectSpace._id2ref(0) #=> false
puts ObjectSpace._id2ref(1) #=> 0
puts ObjectSpace._id2ref(2) #=> true
puts ObjectSpace._id2ref(3) #=> 1
puts ObjectSpace._id2ref(4) #=> nil
puts ObjectSpace._id2ref(5) #=> 2
puts ObjectSpace._id2ref(6) #=> foo.rb:8:in `_id2ref': 0x6 is not id value (RangeError)

5まではあり、6,7,8は RangeError で追記・7は3でした

puts ObjectSpace._id2ref(9) #=> 4

になるのが解らない…。

あと jruby 1.4 では結果が違った。

$ jruby --version
jruby 1.4.0 (ruby 1.8.7 patchlevel 174) (2010-01-11 6586) (Java HotSpot(TM) Client VM 1.6.0_17) [i386-java]

puts ObjectSpace._id2ref(0) #=> false
puts ObjectSpace._id2ref(1) #=> 0
puts ObjectSpace._id2ref(2) #=> true
puts ObjectSpace._id2ref(3) #=> 1
puts ObjectSpace._id2ref(4) #=> nil
puts ObjectSpace._id2ref(5) #=> 2
puts ObjectSpace._id2ref(6) #=> nil
記事の一覧 >

関連するかもエントリー

はてなモノリス開発話
本日、はてなモノリスという Android / iPhone3GS 向けの簡単にモノのバーコードをスキャンして投稿(Twitter にも同時投稿できます)というサービスを作りました。是非対応端末をお使いの方は利用してみてくださいね。概要だけきいてもうーん、という感じですが実際に使...
本日、はてなモノリスという Android / iPhone3GS 向けの簡単にモノのバーコードをスキャンして投稿(Twitter にも同時...
はてな退職しました
7/16 が最終出社日7月末まで有給で休むため、7/16が最終出社ですとなり、はてなを退職しました。はてなブックマークでのチュートリアル機能がはてなでの最後の仕事となりました。はてなに入ってからを振り返ってみると2006年1月にはてなに15番目の社員として入社し、4年7ヶ月はてな...
7/16 が最終出社日7月末まで有給で休むため、7/16が最終出社ですとなり、はてなを退職しました。はてなブックマークでのチュートリアル機能...