# Iterator パターン # # cosed by Takehiro Kaga # # イテレータパターンとは(Rubyの簡単な例) # http://www.jaist.ac.jp/~m-hatake/design/ # # RubyではIteratorパターンは言語に組み込まれている。 # # -- リスト2 配列aの各要素を表示(C言語) -- # # for (i = 0; i < N; i++) { # elm = a[i] # printf("%d\n", elm); # } # # -- リスト3 配列aの各要素を表示(Ruby) -- # # a.each do |elm| # puts elm # end # # 下記に本棚に本が格納されており、本棚にある本の名前を # 出力する例を示す。 # class Book def initialize(name) @name = name end def name @name end end class BookShelf < Array end # ---- Main ---- # bookShelf = BookShelf.new bookShelf.push(Book.new("本1")) bookShelf.push(Book.new("本2")) bookShelf.push(Book.new("本3")) bookShelf.each{|book| puts book.name} # iteratorがRuby言語に内臓されている。