📜  红宝石 |迭代器的类型

📅  最后修改于: 2022-05-13 01:55:30.387000             🧑  作者: Mango

红宝石 |迭代器的类型

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

  • “迭代器”是 Ruby 中的面向对象概念。
  • 更简单地说,迭代器是集合(数组、哈希等)支持的方法。集合是存储一组数据成员的对象。
  • Ruby 迭代器一个接一个地返回集合中的所有元素。
  • Ruby 迭代器是“可链接的”,即在彼此之上添加功能。

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

  1. 每个迭代器
  2. 收集迭代器
  3. 时间迭代器
  4. Upto 迭代器
  5. 向下迭代器
  6. 步进迭代器
  7. Each_Line 迭代器
    1. 每个迭代器:此迭代器返回数组或散列的所有元素。每个迭代器一个一个地返回每个值。
      句法:
collection.each do |variable_name|
   # code to be iterate
end
  1. 在上述语法中,集合可以是范围、数组或散列。
    例子:
Ruby
# 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


Ruby
# 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


Ruby
# 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


Ruby
# 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


Ruby
# 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


Ruby
# 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


Ruby
# 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


  1. 输出:
0
1
2
3
4
5
6
7
8
9

G
e
e
k
s
  1. 收集迭代器:此迭代器返回集合的所有元素。 collect 迭代器返回整个集合,无论它是数组还是散列。
    句法:
Collection = collection.collect
  1. 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
  1. 输出:
5
10
15
20
25
30
35
40
45
50
  1. Times Iterator:在这个迭代器中,一个循环被植入了特定的时间。循环最初从零开始,一直运行到小于指定数字的一。
    这可以在没有迭代变量的情况下使用。我们可以通过使用标识符周围的垂直条来添加迭代变量。
    句法:
t.times do |variable_name|

# code to be execute

end
  1. 这里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
  1. 输出:
0
1
2
3
4
5
6
  1. Upto Iterator:这个迭代器遵循从上到下的方法。它包括迭代中的顶部和底部变量。
    句法:
top.upto(bottom) do |variable_name|

# code to execute

end
  1. 这里迭代从top开始并在bottom结束。重要的一点要记住,底部变量的值总是大于顶部变量,如果不是,那么它将什么也不返回。
    例子:

红宝石

# 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 
  1. 输出:
4
5
6
7
  1. Downto Iterator:这个迭代器遵循自下而上的方法。它包括迭代中的顶部和底部变量。
    句法:
top.downto(bottom) do |variable_name|

# code to execute

end
  1. 这里迭代从底部开始,到顶部结束。重要的一点要记住,底部变量的值总是小于顶部变量,如果不是,那么它将不返回任何内容。
    例子:

红宝石

# 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 
  1. 输出:
7
6
5
4
  1. 步进迭代器: Ruby 步进迭代器用于在用户必须跳过指定范围的地方进行迭代。
    句法:
Collection.step(rng) do |variable_name|

# code to be executed

end 
  1. 这里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
  1. 输出:

0
10
20
30
40
50
60
  1. Each_line 迭代器: Ruby each_line 迭代器用于迭代字符串中的新行。
    句法:
string.each_line do |variable_name|

# code to be executed

end
  1. 例子:

红宝石

# 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
  1. 输出:
Welcome
to
GeeksForGeeks
Portal