在Ruby中,塊是一種匿名函數(shù)的形式,可以被傳遞給方法來執(zhí)行特定的操作。塊通常由花括號({})或者do/end關鍵字包圍,可以接受參數(shù)并執(zhí)行其中的代碼。
塊可以被傳遞給方法作為參數(shù),然后在方法內(nèi)部通過yield關鍵字執(zhí)行。例如:
def greet
puts "Hello"
yield
end
greet do
puts "World"
end
在上面的例子中,greet方法接受一個塊作為參數(shù),并在方法內(nèi)部通過yield執(zhí)行該塊。最終輸出為:
Hello
World
塊還可以接受參數(shù),并使用| |語法定義參數(shù)。例如:
def calculate(num1, num2)
yield(num1, num2)
end
calculate(5, 3) do |a, b|
puts a + b
end
在上面的例子中,calculate方法接受兩個參數(shù)和一個塊作為參數(shù),并在方法內(nèi)部通過yield執(zhí)行該塊,并傳遞參數(shù)給塊。最終輸出為:
8
總的來說,Ruby中的塊可以用來執(zhí)行一些特定的操作,并且可以被傳遞給方法來實現(xiàn)一些靈活的邏輯控制。