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

【Ruby】each_with_indexとeach.with_index

Ruby
【投稿者:okano】

アプリ開発と関係ないことですが、Rubyネタです!

Javaで拡張for文を使っている時に、たまに困ることが起きる。
String[] s_array = {"789","789", "745", "sas" , "sa56" , "sq" ,}
for(String str : s_array){
System.out.println(str);
}

もし、上記のコードでインデックスも表示させたいとなった時に、書き方を変えないといけない。

String[] s_array = {"789","789", "745", "sas" , "sa56" , "sq" ,}
for(int i = 0 ; i < s_array.length ; i++){
System.out.println(i + " : " + str);
}


int i = 0;
for(String str : s_array){
System.out.println(i + " : " + str);
i++;
}


あまりスマートな書き方ではない…。
パフォーマンスとかメンテナンス性の話は抜きで…。

ここで全然関係ないRubyのお話。
Rubyはeachで回しながら、インデックスも一緒に数えられる!
素晴らしい言語ですわー。

each_with_indexを使って、インデックスも一緒に数えられる!
list = %w{789 789 745 sas sa56 sq}

list.each_with_index{|item , i|
puts "#{i + 1} : #{item}"
}

でも、インデックスが0から始まる。
1から始めたい!+ 1とかださい!
という場合に、each.with_indexを使うと解決できます!
list = %w{789 789 745 sas sa56 sq}

list.each.with_index(1) { |item , i|
puts "#{i} : #{item}"
}

with_index(1)で、インデックスを1から始めるという指定ができます。
さすがRuby

ただそれだけの話しです…。

Javaも悪くないさ…。