ブロック{}
はBlock
クラスに分類されていますか?ブロッククラスとして分類されているルビのブロックはありますか?
私のメソッドはブロックを受け取り、これらのオブジェクトが分類されている特定の引数に反応する必要があります。
コードブロックであることを確認するにはどうすればよいですか?
{}.is_a? Block
は、true
と等しくない。
ブロック{}
はBlock
クラスに分類されていますか?ブロッククラスとして分類されているルビのブロックはありますか?
私のメソッドはブロックを受け取り、これらのオブジェクトが分類されている特定の引数に反応する必要があります。
コードブロックであることを確認するにはどうすればよいですか?
{}.is_a? Block
は、true
と等しくない。
ブロックはProcオブジェクトだと思います。
def some_method(&some_block)
puts some_block.class
puts some_block.is_a? Proc
end
some_method { }
プリント
Proc
true
_ "私はブロックがProcオブジェクトだと思う" _ - それほどではない。 procは明示的なブロック引数のために作成されます。 '&some_block'がなければ、procは作成されません。 – Stefan
[ 'カーネル#1 block_given?'](https://ruby-doc.org/core-2.4.1/Kernel.html#method-i-block_given-3F )? –
'Block'クラスとは何ですか?そのドキュメントはどこにありますか? – sawa
'{}'はブロックではなく、ハッシュです。 – sawa