私はそのようなブロックa {}
があると仮定した場合、私は、同じ結果にその`&block`というパラメータを持たないメソッドで、`&block`と `yield self`を持つメソッドで` yield self`を使うのに違いはありますか?
def a(&block)
block.call(self)
end
と
def a()
yield self
end
リードを理解しています。私の質問は - 私はそのようないくつかのコードの上につまずいているので、(私はそうでない変数/参照ブロックを使用しない場合)を有するのいずれかの利点がある場合、それはどんな違いかどうか:
def a(&block)
yield self
end
これは、私は&block
の使用を理解していないコンクリートの場合:
def rule(code, name, &block)
@rules = [] if @rules.nil?
@rules << Rule.new(code, name)
yield self
end
[ブロック引数](http://ruby-doc.org/core-2.4.1/doc/syntax/methods_rdoc.html#label-Block+Argument)のドキュメントは異なるユースケースを示しています。 – Stefan
@Stefan私は&ブロックの使用を理解していない特定のケースを追加しました。多分私は何かを見逃しています。それに加えて私は文書を読んで、それは私の理解に相当します。 –
明示的に使用しない場合は、リストに追加しないでください。呼び出しが遅くなり、混乱します。 – ndn