Ruby迭代器

迭代器是用於面向對象語言的概念。迭代就像迴圈一樣多次做同一件事情。
迴圈方法是最簡單的迭代器。它們一個接一個地從集合中返回所有的元素。數組和哈希也是一個集合。

Ruby each迭代器

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>

Ruby times迭代器

迴圈由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迭代器

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迭代器

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>

Ruby each_line 迭代器

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>

上一篇: Ruby範圍 下一篇: Ruby檔I/O