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