我最近購買了這本書七週七種語言,並一直在閱讀關於Ruby的一章。在其中引入了塊(第40頁)段,代碼樣本中給出,它說明的有條件執行的東西爲目的使用的塊:你如何使用Ruby塊來有條件地執行某些事情?
in_case_of_emergency do
use_credit_card
panic
end
def in_case_of_emergency
yield if emergency?
end
此代碼沒有多大意義,我,和本書沒有提供太多的解釋。我想知道你們中的一位Ruby大師會不會介意幫助我解決這個問題。
你怎麼能有一個塊和同名的函數?你如何定義「緊急?」我甚至無法在IRB中創建塊,但不會抱怨:
NoMethodError: undefined method `in_case_of_emergency' for main:Object
from (irb):1
from :0
而您將如何調用此代碼來演示它的工作原理?謝謝!
阿馬丹是對的。 @Steve你確定這本書按照這個順序給出了代碼嗎? – sawa 2011-05-02 05:16:25
+1,它應該按照Amadan提到的順序進行 – 2011-05-02 05:19:14
是的,這是書中給出的順序。 – 2011-05-02 05:58:47