タグ

ブックマーク / i.loveruby.net (3)

  • LoveRubyNet Wiki: RubyIteratorPattern

    2004-01-25 21:29:41 +0900 (1713d); rev 2 Ruby のイテレータを典型的なパターンに分類した。 繰り返し型 典型的な実例は Array#each、Hash#each、String#each_byte など。 最もありがちなイテレータの使いかた。 コレクションオブジェクトの各要素について順番にアクセスしていくときに使う。 また、Array#each_index や Integer#upto のように、 必ずしも「要素」でないオブジェクトに対して繰り返すこともある。 [実装例] class SomeCollection1 def each list = @list while list yield list.value list = list.next end end end class SomeCollection2 def each(&block)

    katzchang
    katzchang 2010/08/02
  • Rubyソースコード完全解説 / 青木峰郎

    $Id: index.html,v 1.6 2004/07/20 23:08:12 aamine Exp $ この文書は書籍『Rubyソースコード完全解説』のHTML版です。 ただし初校段階の原稿をベースにしているため、 書籍では修正されている間違いが残っている場合があります。 予め御了承ください。 2004-02-16 に全章を公開しました。 目次 まえがき 序章 第 1 部「オブジェクト」 第 1 章「Ruby言語ミニマム」 第 2 章「オブジェクト」 第 3 章「名前と名前表」 第 4 章「クラス」 第 5 章「ガーベージコレクション」 第 6 章「変数と定数」 第 7 章「セキュリティ」 第 2 部「構文解析」 第 8 章「Ruby言語の詳細」 第 9 章「速習yacc」 第 10 章「パーサ」 第 11 章「状態付きスキャナ」 第 12 章「構文木の構築」 第 3 部「評価」 第

    katzchang
    katzchang 2009/05/07
  • 極めるイテレータ

    $Id: iterator.rd,v 1.5 2003/06/18 23:28:28 aamine Exp $ Ruby の最大の特徴であり難関でもあるイテレータを極めちゃうぜ講座。 イテレータとはなにか 最初に言っておくと、最近の Ruby 界では「イテレータ」という名称はあんま し好まれてない。くりかえさないイテレータが増えてきたっていうのが理由だ。 ではなんと呼べばいいのかっていうと、「ブロック付きメソッド」とか言うらしい。 どうも好きじゃないなあこの名称。 じゃあどんな名称だったらいいのか。 原点に立ち戻ってイテレータとはなにかと考えると、「制御構造を作るメソッ ド」なのだ。それは以下のような例を見れば感覚的に「あー、そうなのか」と わかる。 def IF( cond ) yield if cond end IF (i > 4) { puts 'ok' } そんなわけで、原理を考え

  • 1