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

h3pei
フリーランスのソフトウェアエンジニア。Ruby / Rails アプリケーションの開発が得意領域。設計・実装・運用まで含めてプロダクト開発が好きです。
Questalという目標達成コミュニティサービスを開発しました。仲間と一緒に目標達成に取り組みたい方はぜひご利用ください。
<< 前の記事VSCodeでマウスを使わずにパネルサイズを調整する