推荐答案
在 Ruby 中,迭代器(Iterator)是一种方法,它允许你遍历集合(如数组、哈希等)中的每个元素,并对每个元素执行特定的操作。Ruby 提供了多种内置的迭代器方法,如 each、map、select 等,这些方法使得遍历集合变得非常简洁和直观。
本题详细解读
什么是迭代器?
迭代器是一种设计模式,它允许你按顺序访问集合中的元素,而不需要暴露集合的内部结构。在 Ruby 中,迭代器通常以方法的形式出现,这些方法接受一个代码块(block),并在集合的每个元素上执行这个代码块。
Ruby 中的常见迭代器
each方法each是最常用的迭代器之一。它遍历集合中的每个元素,并将元素传递给代码块。[1, 2, 3].each do |num| puts num end
输出:
1 2 3
map方法map方法遍历集合中的每个元素,并将代码块的返回值组成一个新的数组。doubled = [1, 2, 3].map do |num| num * 2 end puts doubled.inspect
输出:
[2, 4, 6]
select方法select方法遍历集合中的每个元素,并返回一个新的数组,其中包含所有使代码块返回true的元素。evens = [1, 2, 3, 4].select do |num| num.even? end puts evens.inspect
输出:
[2, 4]
自定义迭代器
除了使用内置的迭代器方法,你还可以在自定义类中实现迭代器。通常,这可以通过定义 each 方法来实现。
// www.javascriptcn.com code example
class MyCollection
def initialize
@items = [1, 2, 3]
end
def each
@items.each { |item| yield item }
end
end
collection = MyCollection.new
collection.each do |item|
puts item
end输出:
1 2 3
总结
Ruby 的迭代器提供了一种简洁而强大的方式来遍历集合。通过使用内置的迭代器方法或自定义迭代器,你可以轻松地对集合中的元素进行操作。