Ruby 迭代器的类型

Ruby 迭代器的类型

迭代这个词意味着多次做一件事,这就是 迭代器的作用。有时,迭代器被称为自定义循环。

  • “迭代器 “是Ruby中面向对象的概念。
  • 用更简单的话来说,迭代器是 由集合(Arrays, Hashes等)支持的方法。集合是存储一组数据成员的对象。
  • Ruby 迭代器一个接一个地返回一个集合中的所有元素。
  • Ruby迭代器是 “可链式 “的,即在彼此的基础上增加功能。

在Ruby中,有许多迭代器,如下 所示:

  1. Each迭代器
  2. Collect迭代器
  3. Times迭代器
  4. Upto迭代器
  5. downto迭代器
  6. step迭代器
  7. Each_Line 迭代器
    1. Each 迭代器: 这种迭代器返回数组或哈希的所有元素。每个迭代器逐一返回每个值。

语法:

collection.each do |variable_name|
   # code to be iterate
end

在上述语法中,集合可以是范围、数组或哈希。

例子:

# Ruby program to illustrate each iterator
 
#!/usr/bin/ruby   
 
# using each iterator
# here collection is range
# variable name is i
(0..9).each do |i|
     
    # statement to be executed
    puts i
     
end
 
a = ['G', 'e', 'e', 'k', 's']
 
puts "\n"
 
# using each iterator
# here collection is an array
a.each do|arr|
  
    # statement to be executed
    puts arr
     
end

输出:

0
1
2
3
4
5
6
7
8
9

G
e
e
k
s
  1. Collect 迭代器: 这个迭代器返回一个集合的所有元素。collect 迭代器返回整个集合,不管它是数组还是哈希。

语法:

Collection = collection.collect

collect方法不需要总是与一个块相关联。collect方法返回整个集合,不管它是一个数组还是一个哈希值。

例子:

# Ruby program to illustrate the collect iterator
 
#!/usr/bin/ruby
 
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 
# using collect iterator
# printing table of 5
b = a.collect{ |y| (5 * y) }
puts b

输出:

5
10
15
20
25
30
35
40
45
50
  1. Times迭代器: 在这个迭代器中,一个循环被植入了特定的时间数。循环最初从零开始,一直运行到比指定数字少的那一个。
    这可以在没有迭代变量时使用。我们可以通过使用标识符周围的竖条来添加一个迭代变量。

语法:

t.times do |variable_name|

# code to be execute

end

这里 t 是指定的数字,用来定义迭代次数。

示例:

# Ruby program to illustrate time iterator
 
#!/usr/bin/ruby
 
# using times iterator by providing
# 7 as the iterate value
7.times do |i|
    puts i
end

输出:

0
1
2
3
4
5
6
  1. Upto 迭代器: 该迭代器采用从上到下的方法。它在迭代中包括顶部和底部变量。

语法:

top.upto(bottom) do |variable_name|

# code to execute

end

这里的迭代从顶部开始,在底部结束。需要记住的是, 底层变量的值总是 大于顶层变量的值,如果不是这样,那么它将什么也不返回。

例子:

# Ruby program to illustrate the upto iterator
 
#!/usr/bin/ruby
 
# using upto iterator
# here top value is 4
# bottom value is 7
4.upto(7) do |n|  
  puts n  
end 
 
# here top > bottom
# so no output
7.upto(4) do |n|  
  puts n  
end 

输出:

4
5
6
7
  1. downto迭代器: 该迭代器采用从下到上的方法。它包括迭代中的顶部和底部变量。

语法:

top.downto(bottom) do |variable_name|

# code to execute

end

这里的迭代从bottom开始,在顶部结束。需要记住的一点是, 底层变量的值总是小于顶层变量的值,如果不是这样,那么它将什么也不返回。

例子:

# Ruby program to illustrate the downto iterator
 
#!/usr/bin/ruby
 
# using downto iterator
# here top value is 7
# bottom value is 4
7.downto(4) do |n|  
  puts n  
end 
 
# here top < bottom
# so no output
4.downto(7) do |n|  
  puts n  
end 

输出:

7
6
5
4
  1. step迭代器: Ruby步骤迭代器用于迭代用户必须跳过的指定范围。

语法:

Collection.step(rng) do |variable_name|

# code to be executed

end 

这里rng是整个迭代操作将被跳过的范围。

例子:

# Ruby program to illustrate step iterator
 
#!/usr/bin/ruby
 
# using step iterator
# skipping value is 10
# (0..60 ) is the range
(0..60).step(10) do|i|
    puts i
end

输出:

0
10
20
30
40
50
60
  1. Each_line 迭代器: Ruby each_line 迭代器用于迭代字符串中的一个新行。

语法:

string.each_line do |variable_name|

# code to be executed

end

例如:

# Ruby program to illustrate Each_line iterator
 
#!/usr/bin/ruby
  
# using each_line iterator
"Welcome\nto\nGeeksForGeeks\nPortal".each_line do|i|
puts i
end

输出:

Welcome
to
GeeksForGeeks
Portal

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程