は、私はすべてのエラーを起こさないことfoo(&nil)はfoo( "not a proc")とはどのようにふるまいますか?
[1, 2, 3].each(&nil)
野次るから出た - それはちょうど列挙子を返します。これとは対照的に
、
[1, 2, 3].each(&"")
はまた
TypeError: wrong argument type String (expected Proc)
、block_given &nil
原因を発生させますか? NilClass
はto_proc
を実装しているため、偽
def block_given_tester
if block_given?
puts "Block given"
else
puts "Block not given"
end
end
block_given_tester(&nil) # => Block not given
を返すために、そうではありません - 私はRDocとを確認しました。
私は&nil
を持っていいだろう、なぜを理解することができますが、私はがどのように行うのわかりません。これはちょうどnil
が他のオブジェクトによって共有されない特別な振る舞いを持つ方法の1つですか?
1.9ブランチの1つではなく、1.8ブランチの1つを見ているとします。 –
はい、これはRuby 1.8のものです。これは私が利用できるコードです。 Ruby 1.9.2のコードをダウンロードして、何かが変更されているかどうかを確認します。 –
Ruby 1.9.2の回答を編集しました。 –