s = Proc.new {|x|x*2}
def one_arg(x)
puts yield(x)
end
one_arg(5, &s)
についてどのようにone_arg
知ってい&s
ますか?
s = Proc.new {|x|x*2}
def one_arg(x)
puts yield(x)
end
one_arg(5, &s)
についてどのようにone_arg
知ってい&s
ますか?
演算子は&
Proc をブロックに変換するため、ブロックを持つ 1 つの引数のメソッドになります (これは で呼び出されyield
ます)。を&
省略して Proc を直接渡すと、エラーが発生します。
を実行することで、Proc をブロックとして渡したいということになります&s
(間違っていたら訂正してください)。同等の記述は次のようになりますone_arg
s
one_arg(5) do |x|
x *2
end
これに対処する最近の SO に関するいくつかの質問がありました。August Lilleaasは、この Ruby の狂気すべての複雑さのいくつかについて、非常に素晴らしい記事を書いています。