どちらもブロックを除く 2 つのメソッドがありますが、メソッドの 1 つはそのブロックを別のメソッドに渡す必要があります。
def one(&block)
two(block)
end
def two(&block)
block.call
end
実際のコードでは、他のパラメーターが渡され、one
構文糖衣two
です。
ブロックで と の両方one
を呼び出せるようにしたい。two
one { } # => okay
two { } # => ArgumentError: wrong number of arguments (1 for 0)
を取得する理由がわかり、ArgumentError
引数two
自体がありません。これをどのように表現するかはよくわかりませんが&block
、渡された引数の後にブロックが表示されることを示しているため、エラーが発生します。
ルビー1.9