タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

rubyとcode readingに関するrochefortのブックマーク (1)

  • CRuby の hash.c を一部読んだ - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    ツイッターで「Ruby の Hash のキーにするオブジェクトに hash と eql? を定義しないといけないのなんでなんだろう」という話題が出て、「おそらく Hash の名前の通り、Hash テーブルを lookup するのにキーの hash 値を計算するのに使ってるんだろうね」という話になったのだけれど、「じゃあhash.c 読んでみようぜ」って感じになって、一部読んだ。2.0.0-p0のコードです。 (一部markdownが注釈と解釈されておかしなことになってるの防ぐためにスペースを余分に入れてある) まずは、Hash#[ ] の実装がどこにあるのか見る。 hash.c の 3448 行目見るとわかる。 rb_define_method(rb_cHash,"[ ]", rb_hash_aref, 1); Hash#[ ] の実体は rb_hash_aref というCの関数である。じ

    CRuby の hash.c を一部読んだ - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    rochefort
    rochefort 2017/03/25
    web+db から。dive into Ruby Hash // hash と eql?
  • 1