Ruby - 迭代器
迭代器只不过是集合支持的方法。 存储一组数据成员的对象称为集合。 在 Ruby 中,数组和散列可以称为集合。
迭代器一个接一个地返回集合的所有元素。 我们将在这里讨论两个迭代器,each 和 collect。 让我们详细看看这些。
Ruby each 迭代器
each 迭代器返回数组或散列的所有元素。
语法
collection.each do |variable| code end
为 collection 中的每个元素执行 code。 在这里,collection 可以是一个数组或一个 ruby 散列。
示例
#!/usr/bin/ruby ary = [1,2,3,4,5] ary.each do |i| puts i end
这将产生以下结果 −
1 2 3 4 5
您总是将 each 迭代器与一个块相关联。 它将数组的每个值一个接一个地返回到块中。 该值存储在变量i 中,然后显示在屏幕上。
Ruby collect 迭代器
collect 迭代器返回集合的所有元素。
语法
collection = collection.collect
collect 方法不必总是与块相关联。 collect 方法返回整个集合,不管它是数组还是散列。
示例
#!/usr/bin/ruby a = [1,2,3,4,5] b = Array.new b = a.collect puts b
这将产生以下结果 −
1 2 3 4 5
注意 − collect 方法不是在数组之间进行复制的正确方法。 还有另一种称为clone 的方法,它应该用于将一个数组复制到另一个数组中。
当您想对每个值执行某些操作以获取新数组时,通常会使用 collect 方法。 例如,此代码生成一个数组 b,其中包含 a 中每个值的 10 次。
#!/usr/bin/ruby a = [1,2,3,4,5] b = a.collect{|x| 10*x} puts b
这将产生以下结果 −
10 20 30 40 50