読者です 読者をやめる 読者になる 読者になる

OnsenとRuby

Ruby初心者。というかプログラム初心者の日記。 

Rubyのyieldが難しい。

手続き型オブジェクトがいまいちわからなかったので下記のサイトを見て
ようやく入口に立つことができた感じ。

Ruby の yield って結局なんなの?
http://d.hatena.ne.jp/yoshidaa/20090511/1241967137


Procは{}を引数としてメソッドに渡すことができるからやはりイテレーターと相性がよいわけです。
それで自作のイテレーターを作ってみたいと思う。
まずは単純な例として。

def foo
 yield
 yield
 yield
end

これでyieldを3回呼び出すメソッドを作成できました。

yiled(ブロック)に引数を渡すにはyiled文の後ろに続けて書くことができます。

def foo(a,b,c)
 i = 0
 while(i < a)
    yield i + b + c
    i += 1
 end
end

foo(3,1,2){|x| puts x} 

実行結果
=>3,4,5