📅  最后修改于: 2023-12-03 15:11:37.021000             🧑  作者: Mango
在 Ruby 中,迭代器可以帮助我们更加优雅地对集合进行操作,而 Ruby 中内置了多种不同类型的迭代器,可以满足不同场景下的需求。
each
方法是最常用的迭代器之一。它可以对集合中的每个元素进行遍历,使用 do…end
或者 {}
包含迭代代码,可以看下面的例子:
array = [1, 2, 3]
array.each do |element|
puts element
end
输出:
1
2
3
如果需要重复某些操作,可以使用 times
迭代器,该迭代器的参数为重复的次数:
3.times do
puts "hello"
end
输出:
hello
hello
hello
如果需要在集合中对每个元素进行处理,并返回一个新的集合,就可以使用 map
迭代器:
array = [1, 2, 3]
new_array = array.map do |element|
element * 2
end
puts new_array.inspect
输出:
[2, 4, 6]
select
迭代器可以对集合中的所有元素进行筛选,返回满足条件的元素:
array = [1, 2, 3, 4, 5]
even_numbers = array.select do |element|
element % 2 == 0
end
puts even_numbers.inspect
输出:
[2, 4]
inject
迭代器可以对集合中的所有元素进行累计计算,将上一次的计算结果作为下一次的参数:
array = [1, 2, 3, 4, 5]
sum = array.inject do |result, element|
result + element
end
puts sum
输出:
15
如果需要在迭代器中获取元素在集合中的下标,可以使用 each_with_index
迭代器:
array = ["a", "b", "c"]
array.each_with_index do |element, index|
puts "#{index}: #{element}"
end
输出:
0: a
1: b
2: c
Ruby 中内置了多种不同类型的迭代器,可以满足不同场景下的需求。掌握这些迭代器可以帮助我们更加优雅地对集合进行操作。