在 Ruby 中,迭代器是一种用于遍历集合元素的机制。Ruby 提供了多种迭代器,使得遍历数组、哈希等数据结构变得非常简便。以下是一些常见的 Ruby 迭代器:

1. each 迭代器

each 是最常用的迭代器,用于遍历集合中的每个元素。
numbers = [1, 2, 3, 4, 5]

numbers.each do |num|
  puts num
end
# 输出:1 2 3 4 5

2. times 迭代器

times 迭代器用于指定次数的迭代。
3.times do
  puts "Hello, World!"
end
# 输出:
# Hello, World!
# Hello, World!
# Hello, World!

3. map 迭代器

map 迭代器用于创建一个新数组,其中的每个元素都是原始数组元素经过某种操作后的结果。
numbers = [1, 2, 3, 4, 5]

squared_numbers = numbers.map do |num|
  num ** 2
end

puts squared_numbers
# 输出:[1, 4, 9, 16, 25]

4. select 迭代器

select 迭代器用于根据条件选择集合中的元素。
numbers = [1, 2, 3, 4, 5]

even_numbers = numbers.select do |num|
  num.even?
end

puts even_numbers
# 输出:[2, 4]

5. each_with_index 迭代器

each_with_index 迭代器用于同时访问元素和它们的索引。
fruits = ["apple", "banana", "orange"]

fruits.each_with_index do |fruit, index|
  puts "#{index + 1}. #{fruit}"
end
# 输出:
# 1. apple
# 2. banana
# 3. orange

6. each_key 和 each_value 迭代器(用于哈希)
person = { name: "John", age: 30, gender: "male" }

person.each_key do |key|
  puts key
end
# 输出:name age gender

person.each_value do |value|
  puts value
end
# 输出:John 30 male

这些是一些常见的 Ruby 迭代器,它们使得处理集合中的元素变得更加方便和灵活。你可以根据实际需要选择适合的迭代器来完成不同的任务。如有其他问题,请随时提问。


转载请注明出处:http://www.zyzy.cn/article/detail/13436/Ruby