在Ruby中,有多種循環結構可以替代傳統的each
循環。以下是一些常見的替代方案:
while循環:
i = 0
while i < 10
puts i
i += 1
end
for循環:
for i in 0..9
puts i
end
times方法:
10.times do |i|
puts i
end
select方法(用于集合):
array = [1, 2, 3, 4, 5]
array.select { |num| num % 2 == 0 }.each do |even_num|
puts even_num
end
find_all方法(用于集合):
array = [1, 2, 3, 4, 5]
array.find_all { |num| num % 2 == 0 }.each do |even_num|
puts even_num
end
select!方法(用于集合,會修改原集合):
array = [1, 2, 3, 4, 5]
array.select! { |num| num % 2 == 0 }
find_all!方法(用于集合,會修改原集合):
array = [1, 2, 3, 4, 5]
array.find_all! { |num| num % 2 == 0 }
each_with_index方法(用于迭代器或數組):
array = [1, 2, 3, 4, 5]
array.each_with_index do |num, index|
puts "#{index}: #{num}"
end
each_cons方法(用于迭代器,生成連續的元素對):
array = [1, 2, 3, 4, 5]
array.each_cons(2) do |a, b|
puts "#{a} -> #{b}"
end
inject方法(用于迭代器,累積結果):
array = [1, 2, 3, 4, 5]
sum = array.inject(0) { |total, num| total + num }
puts sum
這些替代方案可以根據具體需求選擇使用,以實現更靈活和高效的代碼邏輯。