history

青木日記 RSS

<前の日 | この月 | 次の日>

2003-09-22

xxx_with_index

Enumerable#with_index ってのはどうだろう。 つーか前に誰かが案を出してたような気がするけどもう覚えてらんない。

module Enumerable
  def with_index( mid )
    idx = -1
    __send__(mid) do |*args|
      idx += 1
      yield(idx, *args)
    end
  end
end
 
[2,4,6].with_index(:each) do |idx, i|
  puts "index #{idx}: #{i}"
end
{1=>5, 2=>10, 3=>15}.with_index(:each) do |idx, key, val|
  puts "index #{idx}: #{key} => #{val}"
end

あぁ、each_with_index と引数の順番が違うし。 「*」を使うためにはやむを得ない。

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved. LIRS