From: m_seki@... Date: 2002-12-26T07:33:53+09:00 Subject: [ruby-dev:19198] ruby-1.8.0 / yield(nil)とyield()のちがい 咳といいます。 previewが出たので1.8.0でdRubyに挑戦してます。 ruby-1.8.0-preview1とruby-1.6.8のyieldの引数の違いについて 教えてください。 困っているのは yield() と yield(nil) がブロックで区別できない ところです。 ruby-1.6.8では次のようにそれぞれ異なるのですが‥ def foo(*arg) yield(*arg) end foo() {|*x| p x} # -> [] foo(nil) {|*x| p x} # -> [nil] foo(1) {|*x| p x} # -> [1] ruby-1.8.0-preview1では次のように同じになってしまいます。 foo() {|*x| p x} # -> [] foo(nil) {|*x| p x} # -> [] ← yield()と同じになってしまう。 foo(1) {|*x| p x} # -> [1] # foo(1)はあんまり関係ないですが参考までに。 ruby-1.6.8のように区別できるようになるとうれしいのですが、 これはruby-1.8.0の仕様でしょうか?