Ruby 提供了多种循环结构,包括 each
、each_with_index
、each_with_object
、select
、reject
、find
、find_all
等。以下是一些高效的使用方法:
each
进行迭代array = [1, 2, 3, 4, 5]
array.each do |element|
puts element * 2
end
each_with_index
在迭代时获取元素索引array = ['a', 'b', 'c', 'd', 'e']
array.each_with_index do |element, index|
puts "Element at index #{index} is #{element}"
end
each_with_object
在迭代时构建一个新的对象array = [1, 2, 3, 4, 5]
result = array.each_with_object({}) do |element, hash|
hash[element] = element * 2
end
puts result
select
进行筛选array = [1, 2, 3, 4, 5]
even_numbers = array.select { |number| number.even? }
puts even_numbers
reject
进行筛选(与 select
相反)array = [1, 2, 3, 4, 5]
odd_numbers = array.reject { |number| number.even? }
puts odd_numbers
find
找到第一个满足条件的元素array = [1, 2, 3, 4, 5]
first_even = array.find { |number| number.even? }
puts first_even
find_all
找到所有满足条件的元素(与 select
等价)array = [1, 2, 3, 4, 5]
all_even = array.find_all { |number| number.even? }
puts all_even
times
进行固定次数的迭代5.times do
puts "Hello, World!"
end
while
循环i = 0
while i < 5
puts "Hello, World!"
i += 1
end
for
循环(在 Ruby 中较少使用,但也可以实现相同功能)for i in 0..4
puts "Hello, World!"
end
这些循环结构各有其适用场景,选择合适的循环方法可以提高代码的可读性和效率。