Rubyのyieldについて以前も書いたのですが再度!!(*´ω`*)
yieldは未だ実作業で出会っていなくて君の魅力はなんなのだ!
ということで再記事ですw
魅力は
- 特定の処理をする、しないを選択できる
- block_given? とyield をセットで使うと魅力倍増
コードの例は以下の通りです。
def test if block_given? yield(1, 2) else p 'ブロックなしだよ' end end test # => "ブロックなしだよ" test { | a, b | p a + b }
このような感じで引数がないと変化がつけれずあまり、活かすことができません。
次のようなケースだといろいろな活用法がありそうです。
def test(type) if block_given? if type == 1 param1 = 1 param2 = 3 else param1 = 5 param2 = 5 end yield(param1, param2) else p 'ブロックなしだよ' end end test(1) # => "ブロックなしだよ" test(1) { | a, b | p a + b } # => 4 test(2) { | a, b | p a + b } # => 10
活かし方にコツがありそうですが
何か参考になれば幸いです(*^^*)