以下の内容はhttps://shuzo-kino.hateblo.jp/entry/2014/10/05/201013より取得しました。


引数のあたまに&をつけるとto_procメソッドが呼び出される(その2)


上記の記事は最初「引数のあたまに&をつけて呼び出せるのはProcとMethod」という題名書きましたところ…kuttya様から以下のようなコメントを頂きました。

kuttya
ダックタイピング的に言えばto_proc持ってればなんでもいいって話だ

早速るりまサーチで調べたところ...to_procを持っているのは

  1. Symbol#to_proc -> Proc
  2. Method#to_proc -> Proc
  3. Proc#to_proc -> self

との事。*1

他のオブジェクトもto_procを実装してあげれば動きます。

class String
  def to_proc
    Proc.new { 42 }
  end  
end  

(1..5).map &"answer"
#=> [42, 42, 42, 42, 42]

(1..5).map &""
#=> [42, 42, 42, 42, 42]

*1:Object#to_procは仮に書いてあるもので実体がないため除外します




以上の内容はhttps://shuzo-kino.hateblo.jp/entry/2014/10/05/201013より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14