Ruby塊(block)是一種非常強(qiáng)大的特性,它允許你編寫一段可重用的代碼,可以在不同的上下文中執(zhí)行。要充分利用Ruby塊的優(yōu)勢,你可以遵循以下幾點(diǎn):
def
關(guān)鍵字定義方法,并在方法中使用yield
關(guān)鍵字來調(diào)用塊。例如:def my_method(&block)
# 方法體
block.call if block_given?
end
my_method do |x|
x * 2
end
numbers = [1, 2, 3, 4, 5]
squared_numbers = numbers.map do |number|
number * number
end
each
、select
等集合方法遍歷集合,并在塊中處理每個元素。例如:words = ["apple", "banana", "cherry"]
long_words = words.select do |word|
word.length > 5
end
times
方法重復(fù)執(zhí)行塊指定的次數(shù)。例如:5.times do
puts "Hello, World!"
end
&:method_name
語法將符號作為塊參數(shù)傳遞給其他方法。例如:array = [{name: "Alice"}, {name: "Bob"}, {name: "Carol"}]
names = array.map(&:name)
block_given?
檢查當(dāng)前上下文是否有一個塊。這在定義接受可選塊參數(shù)的方法時非常有用。例如:def my_method(&block)
block_given? ? block.call : "No block given"
end
puts my_method
puts my_method { "Hello, World!" }
通過遵循這些建議,你可以充分利用Ruby塊的功能,提高代碼的可讀性和可維護(hù)性。