2012-03-28 4 views

答えて

35

ブロックは、ないラムダあります。ブロックがあるかどうかを確認するには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

関連する問題