トップ «前の日記(2006-06-12) 最新 次の日記(2006-06-23)» 編集

活動日誌

2005|02|03|04|05|06|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|03|04|05|06|10|
2008|04|10|

2006-06-15

next の引数

メソッドの途中で値を返すには return を使います。

def f
  return 1
  2
end

f # => 1

では、ブロックの途中で値を返すにはどうするのか?

# [5, 5, 5] にしたい
# map 派
[1, 2, 3].map{ |e| ???? 5; e}

こういうときは next に引数を渡すのだというのを、今日初めて知りました。

irb(main):008:0> [1, 2, 3].map{ |e| next 5; e }
=> [5, 5, 5]

Rubyリファレンスマニュアル - 制御構造

ブロックの途中で yield の呼び出し元に値を返したいと思った経験があまりなかったので、 このようなケースを考えたことがありませんでした。 ちょっとショック。

Tags: Ruby
お名前:
E-mail:
コメント:

トップ «前の日記(2006-06-12) 最新 次の日記(2006-06-23)»
Written by Kouhei Yanagita <yanagi at shakenbu.org>