溫馨提示×

Ruby循環(huán)結(jié)構(gòu)有哪些高效的寫法

小樊
81
2024-11-06 03:57:41
欄目: 編程語言

Ruby 提供了多種循環(huán)結(jié)構(gòu),包括 each、each_with_indexeach_with_object、selectreject、find、find_all 等。以下是一些高效的使用方法:

1. 使用 each 進(jìn)行迭代

array = [1, 2, 3, 4, 5]
array.each do |element|
  puts element * 2
end

2. 使用 each_with_index 在迭代時獲取元素索引

array = ['a', 'b', 'c', 'd', 'e']
array.each_with_index do |element, index|
  puts "Element at index #{index} is #{element}"
end

3. 使用 each_with_object 在迭代時構(gòu)建一個新的對象

array = [1, 2, 3, 4, 5]
result = array.each_with_object({}) do |element, hash|
  hash[element] = element * 2
end
puts result

4. 使用 select 進(jìn)行篩選

array = [1, 2, 3, 4, 5]
even_numbers = array.select { |number| number.even? }
puts even_numbers

5. 使用 reject 進(jìn)行篩選(與 select 相反)

array = [1, 2, 3, 4, 5]
odd_numbers = array.reject { |number| number.even? }
puts odd_numbers

6. 使用 find 找到第一個滿足條件的元素

array = [1, 2, 3, 4, 5]
first_even = array.find { |number| number.even? }
puts first_even

7. 使用 find_all 找到所有滿足條件的元素(與 select 等價)

array = [1, 2, 3, 4, 5]
all_even = array.find_all { |number| number.even? }
puts all_even

8. 使用 times 進(jìn)行固定次數(shù)的迭代

5.times do
  puts "Hello, World!"
end

9. 使用 while 循環(huán)

i = 0
while i < 5
  puts "Hello, World!"
  i += 1
end

10. 使用 for 循環(huán)(在 Ruby 中較少使用,但也可以實(shí)現(xiàn)相同功能)

for i in 0..4
  puts "Hello, World!"
end

這些循環(huán)結(jié)構(gòu)各有其適用場景,選擇合適的循環(huán)方法可以提高代碼的可讀性和效率。

0