私はブロックを取る関数を持っています。このブロックにもブロックが必要です:Rubyブロックからどうやって生産するのですか?
def fn
yield do n
puts n
end
end
fn do
yield 1
end
このコードは "1"を出力します。何それは実際には、しかし、失敗しているん:
構文エラー、予期しないkeyword_do
私は機能ではなく、procのを取ることができます:
def fn(&block)
block.() do n
puts n
end
end
しかし、この場合には、コードが降伏線で失敗する:
与えられたブロックなし(LocalJumpError)
私は、内側のブロックPROCしたくない:
fn do |&block|
block.(1)
end
それはひどい見えますので。私は代わりに、少なくとも内側のブロックで収穫したいと思います。これをどうすれば解決できますか?
ラムダとプロックスはひどく見えません。その評判に値するものではありません。 – Fuser97381
私はそれを汚染と呼んでいません。それはあなたの質問ではありません。あなたは自動的に創造的なコモンズになるこのサイトで公開することによってすべての権利を断念した。所有権を主張することはできません。 – Fuser97381