ぱろっと・すたじお

技術メモなどをまったりと / my site : http://parrot-studio.com/

each_with_index か each.with_index か

以前書いた話でさらっと触れたのが・・・

ちなみに、Ruby1.8.7以降だと、「each_with_index」ではなく、
「each.with_index」の方が汎用性が高まります

・・・というお話


その時はそう書いたものの、いったんEnumeratorを取得してからメソッドを呼ぶよりも、
Array#each_with_indexを直に呼ぶ方がコストが低いんじゃないかと
でもEnumeratorを経由した方が汎用性が高いのも事実だし・・・


で、いろいろ調べた結果、決定打になったのがこれでした


http://redmine.ruby-lang.org/issues/show/1119


「indexの初期値を与えられるようにしたい」という議論での投稿ですが、
まつもと氏があっさりと「each_with_indexは放置」と言っているのです
つまり、今後の方向性として、Enumeratorを扱うのが基本であるということです


実はこの機能、今すぐにでも欲しいのです
以前書いたコードは今のシステムに頻繁に現れるのですが、
indexが0-originであるために、片っ端からi+1って書かないといけないもので・・・


ということで、迷わず「each.with_index」で...φ(・ω・`)