Tbpgr Blog

元エンジニア 人事 tbpgr(てぃーびー) のブログ

書籍 Rubyベストプラクティス | 美しいAPI設計 | オプション有りの順序付き引数

概要

オプション有りの順序付き引数

内容

Rubyの引数について。
オプション有りの順序付き引数。
オプション以外の引数はどれも常に必須であり、指定順序に依存する。
オプションはデフォルトを指定して省略可能にするパターン。

一部の引数のみ、未指定の際にデフォルト値を指定させたい場合に
呼び出し側のコードで引数を省略できるためシンプルになる。

サンプル

# encoding: utf-8

class Hoge
  def hogerized_message(header_message, body_message, has_question = false)
    question = has_question ? '?' : ''
    "#{header_message}_hoge_#{body_message}#{question}"
  end
end

p Hoge.new.hogerized_message "header", "body"
p Hoge.new.hogerized_message "header", "body", true
p Hoge.new.hogerized_message "header", "body", false

出力

"header_hoge_body"
"header_hoge_body?"
"header_hoge_body"