Rubyの「respond_to」メソッド
みなさんこんにちは、新人の意識高丸です。
先日も初心者向けRuby勉強会「gaienrb #24」に参加してきました。
今回はメソッドを一つ調べてみました。
「to_proc」というメソッドです。
名前からするとprocに変換するメソッドに見えるのですが、そのとおりでした。
to_procはメソッドの引数の最後に&を付けて渡した場合に暗黙的に呼ばれるようです。
Rubyでは、ブロックを引数で渡す場合に&を付けるのですが、その際に渡したものがブロックオブジェクトではなく、to_procが定義されているオブジェクトの場合はto_procで暗黙的にProcへの変換が行われて引数が渡されます。
そして、Symbolのto_procは、自身と同名のメソッドを使う手続きオブジェクトを生成するため、それを応用すると以下のように書くことができます。
“`1から10までinjectで足す場合
2.0.0-p247 :021 > (1..10).inject(&:+)
=> 55
“`
“`ブロックを渡して足した場合
2.0.0-p247 :024 > (1..10).inject{|sum,n|sum+n}
=> 55
“`
もう一つ例を書いてみます
“`文字列の配列を数値に変換
2.0.0-p247 :036 > [“1″,”2″,”3″,”4″,”5”].map(&:to_i)
=> [1, 2, 3, 4, 5]
“`
“`ブロックを渡して変換した場合
2.0.0-p247 :037 > [“1″,”2″,”3″,”4″,”5”].map{|x| x.to_i}
=> [1, 2, 3, 4, 5]
“`
これはコードが短く書けて良いと思いました。
Rubyについて日々勉強している新人エンジニアです。初心者向けRuby勉強会のレポートなどを投稿していきます。
TAG
- Android
- AWS
- Bitrise
- CodePipeline
- Firebase
- HTML
- iOS
- IoT
- JavaScript
- KPI
- Linux
- Mac
- Memcached
- MGRe
- MGReのゆるガチエンジニアブログ
- MySQL
- PHP
- PICK UP
- PR
- Python
- Ruby
- Ruby on Rails
- SEO
- Swift
- TIPS
- UI/UX
- VirtualBox
- Wantedly
- Windows
- アクセス解析
- イベントレポート
- エンジニアブログ
- ガジェット
- カスタマーサクセス
- サーバ技術
- サービス
- セキュリティ
- セミナー・展示会
- テクノロジー
- デザイン
- プレスリリース
- マーケティング施策
- マネジメント
- ラボ
- リーンスタートアップ
- 企画
- 会社紹介
- 会社紹介資料
- 勉強会
- 実績紹介
- 拡張性
- 採用
- 日常
- 書籍紹介
- 歓迎会
- 社内イベント
- 社員インタビュー
- 社長ブログ
- 視察
- 開発環境