【Ruby】each_with_indexとeach.with_index
【投稿者:okano】
アプリ開発と関係ないことですが、Rubyネタです!
Javaで拡張for文を使っている時に、たまに困ることが起きる。
もし、上記のコードでインデックスも表示させたいとなった時に、書き方を変えないといけない。
あまりスマートな書き方ではない…。
パフォーマンスとかメンテナンス性の話は抜きで…。
ここで全然関係ないRubyのお話。
Rubyはeachで回しながら、インデックスも一緒に数えられる!
素晴らしい言語ですわー。
each_with_indexを使って、インデックスも一緒に数えられる!
でも、インデックスが0から始まる。
1から始めたい!i + 1とかださい!
という場合に、each.with_indexを使うと解決できます!
with_index(1)で、インデックスを1から始めるという指定ができます。
さすがRuby!
ただそれだけの話しです…。
Javaも悪くないさ…。
アプリ開発と関係ないことですが、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から始めたい!i + 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も悪くないさ…。