2019-03-07
RubyのProcは `#call` 以外でも実行できる
Procオブジェクトは #call
を使って実行することが多いと思う。
fn = Proc.new { |v| puts v }
fn.call("Hello, world!")
# => "Hello, world!"
しかし、次のように []
を使っても実行できるのだ。
fn = Proc.new { |v| puts v }
fn["Hello, world!"]
# => "Hello, world!"
引数が複数でも実行できる。
fn = Proc.new { |v, v2| puts "#{v}, #{v2}" }
fn.call("Hello", "world!")
# => "Hello, world!"
fn["Hello", "world!"]
# => "Hello, world!"
ドキュメントにも普通に書いてあるよ(僕は今日知りました)。
https://docs.ruby-lang.org/ja/latest/method/Proc/i/=3d=3d=3d.html
<< 前の記事VSCodeでマウスを使わずにパネルサイズを調整する