疊代器是用於物件導向語言的概念。疊代就像迴圈一樣多次做同一件事情。
迴圈方法是最簡單的疊代器。它們一個接一個地從集合中返回所有的元素。陣列和雜湊也是一個集合。
Ruby each疊代器是從雜湊或陣列返回所有的元素。
語法
(collection).each do |variable|
code...
end
這裡的集合(collection
)可以是任何陣列,範圍或雜湊。
範例
#!/usr/bin/ruby
# file : iterator-each.rb
(1...5).each do |i|
puts i
end
執行上面程式碼,得到以下結果 -
F:\worksp\ruby>ruby iterator-each.rb
1
2
3
4
F:\worksp\ruby>
迴圈由times
疊代器執行指定的次數。 迴圈將從零開始,並直到所有小於指定的數位的值。
語法
x.times do |variable|
code...
end
在這裡,在x
位置的值,我們需要定義具體數位來迭代迴圈。
範例
#!/usr/bin/ruby
# file : iterator-times.rb
5.times do |n|
puts n
end
執行上面程式碼,得到以下結果 -
F:\worksp\ruby>ruby iterator-times.rb
0
1
2
3
4
F:\worksp\ruby>
Ruby upto
疊代器執行從數位x
到數位y
的疊代。
語法
x.upto(y) do |variable|
code
end
這裡的集合(collection
)可以是任何陣列,範圍或雜湊。
範例
#!/usr/bin/ruby
# file : iterator-upto.rb
1.upto(5) do |n|
puts n
end
執行上面程式碼,得到以下結果 -
F:\worksp\ruby>ruby iterator-upto.rb
1
2
3
4
5
F:\worksp\ruby>
Ruby step
疊代器用於在跳過範圍時迭代。
語法
(controller).step(x) do |variable|
code
end
這裡,x
是疊代時將被跳過的範圍。
範例
#!/usr/bin/ruby
# file : iterator-step.rb
(10..50).step(5) do |n|
puts n
end
執行上面程式碼,得到以下結果 -
F:\worksp\ruby>ruby iterator-step.rb
10
15
20
25
30
35
40
45
50
F:\worksp\ruby>
each_line
疊代器用於迭代字串中的行。
範例
#!/usr/bin/ruby
# file : iterator-each_line.rb
"All\nthe\nwords\nare\nprinted\nin\na\nnew\line.".each_line do |line|
puts line
end
執行上面程式碼,得到以下結果 -
F:\worksp\ruby>ruby iterator-each_line.rb
All
the
words
are
printed
in
a
newline.
F:\worksp\ruby>