2012-03-28 72 views

回答

35

A嵌段是不拉姆達。要查看是否有塊使用block_given?

在任何情況下,我會使用「響應呼叫」當且僅當我真的需要這個構造,我會盡量避免。 (定義合同,使呼叫者負責正確調用它!)

(lambda {1}).respond_to? :call # => true 
(1).respond_to? :call   # => false 

我相信這種形式的結構(又名鴨)輸入更內嵌紅寶石比主格打字用「是一個「關係。

要了解什麼是「是」的關係可能會保持(對未來的演奏在沙箱):

RUBY_VERSION   # => 1.9.2 
(lambda {}).class  # => Proc 
(Proc.new {}).class # => Proc 
def x (&p); p; end  # note this "lifts" the block to a Proc 
(x {}).class   # => Proc 

編碼愉快。

+0

非常酷,有一個'respond_to?'方法。使這些事情變得更容易。 – Automatico 2013-12-08 22:47:49

相關問題