熱門文章

2016年10月31日 星期一

[rails]do each 用法 (with index)

在ruby裡面,大家都用do each 的方法來完成其他程式的for 迴圈

基本的用法  each do


irb(main):013:0> a=[1,2,3,4,5,6]
=> [1, 2, 3, 4, 5, 6]
irb(main):022:0> a.each do |b|
irb(main):023:1* puts b    
irb(main):024:1> end
1
2
3
4
5
6
=> [1, 2, 3, 4, 5, 6]



這樣可以達到for loop的功效 且很簡短 不用再寫 當...大於...時..i++ 這麼長了
但,有一個問題,那當我要有 i++ 這樣遞增或遞減的序號時怎麼做?

答案很簡單  each_with_index do

irb(main):030:0> b=[12,22,23,44,66,22]
=> [12, 22, 23, 44, 66, 22]
irb(main):031:0> b.each_with_index do |b,index|
irb(main):032:1* puts "我是第#{index+1} 筆資料,為'#{b}' 謝謝"
irb(main):033:1> end
我是第1 筆資料,為'12' 謝謝
我是第2 筆資料,為'22' 謝謝
我是第3 筆資料,為'23' 謝謝
我是第4 筆資料,為'44' 謝謝
我是第5 筆資料,為'66' 謝謝
我是第6 筆資料,為'22' 謝謝
=> [12, 22, 23, 44, 66, 22]


參考:http://ruby-doc.org/core-1.8.7/Enumerable.html#method-i-each_with_index


沒有留言:

張貼留言