2025-01-01から1年間の記事一覧

RubyのProcは「関数」としてブロックを取れるか?

結論。驚くべきことに、Procオブジェクトは「関数」と見做してブロックを取るような使い方ができる。 foo = ->(&bk){ bk.call.upcase } puts foo.() { "nyao" } #=>NYAO さらに、enum_forやto_enumを使ってメソッドを Enumerator化することができるように、…

define_method と block_given?(Ruby)

Ruby でメソッドにブロックが与えられているかを確認する、Kernel#block_given?というメソッドがある。 def foo p block_given? end foo #=>false foo {} #=>true これが、メソッドをModule#define_methodで定義した場合、使えない。 define_method(:foo) do…