hash.c

VALUE rb_hash_new(void)

Hash オブジェクトを作成する。

VALUE hash = rb_hash_new();
VALUE rb_hash_freeze(VALUE self)

Hash である self を凍結する。 以後、テーブルの内容を変更しようとすると Ruby の例外 TypeError (rb_eTypeError) が発生する。

VALUE hash = rb_hash_new();
rb_hash_freeze(hash);
rb_hash_aset(INT2FIX(1), INT2FIX(3));   /* 例外TypeError */
VALUE rb_hash_aref(VALUE self, VALUE key)

Hash である self からキー key に関連付けられた値を検索し、返す。 key に関連付けられた値が存在しないときは Qnil を返す。

VALUE hash = rb_hash_new();
VALUE n;

rb_hash_aset(INT2FIX(1), INT2FIX(3));
rb_hash_aset(INT2FIX(2), INT2FIX(6));
rb_hash_aset(INT2FIX(3), INT2FIX(9));
n = rb_hash_aref(INT2FIX(2));   /* n は Ruby の「6」 */
VALUE rb_hash_aset(VALUE self, VALUE key, VALUE value)

Hash である self のキー key に対して値 value を関連付ける。

VALUE hash = rb_hash_new();
VALUE n;

rb_hash_aset(INT2FIX(1), INT2FIX(3));
rb_hash_aset(INT2FIX(2), INT2FIX(6));
rb_hash_aset(INT2FIX(3), INT2FIX(9));
n = rb_hash_aref(INT2FIX(2));   /* n は Ruby の「6」 */
VALUE rb_hash_delete(VALUE self, VALUE key)

Hash である self からキー key に関連付けられた値を削除する。 削除された値を返す。キー key に関連付けたれた値がテーブル内に 存在しないときは Qnil を返す。

VALUE hash = rb_hash_new();
VALUE n;

rb_hash_aset(INT2FIX(1), INT2FIX(3));
rb_hash_aset(INT2FIX(2), INT2FIX(6));
rb_hash_aset(INT2FIX(3), INT2FIX(9));
rb_hash_delete(INT2FIX(2));