struct RHash { struct RBasic basic; struct st_table *tbl; int iter_lev; VALUE ifnone; };Hash の実体。iter_lev はイテレータからの異常脱出(break など)に対応する ためのようだ。ifnone は new の第一引数。new にブロックを渡したらその proc を値としてでなくコードとして使おう、という提案が最近 ruby-talk で しつこく繰り返されている。いいかげん学習しろ。ていうかなんでそんなに デフォルト値を使いたがるのだ? デフォルトってそんなに重要かなあ。 もっと全体を見ようぜー。