[Ruby]キーワード引数の使い方

キーワード引数とは

Rubyにおいてメソッドは、実引数が同じ位置に書かれている仮引数に渡されて実行される。

しかし仮引数にした場合、引数の意味がわからなくなり間違ってしまうことがある。

そこで、引数の名前と値を指定できるキーワード引数を使うと、

・引数の意味がわかりやすくなる

・定義された順序と異なる順序で実引数を指定できる

・デフォルトの値を指定できる

書き方

def (key1: value1, key2: value2)

end

この時、値に何も入れず、実引数も渡さなければエラーが発生する。

def pitcher(speed: 155, age: 24)
  p "#{speed}, #{age}"
end

① pitcher()
=> "155, 24"

② pitcher(speed: 150, age: 30)
=> "150, 30"

①はデフォルトの値の引数でメソッドが実行される。

②は渡した引数で実行される。

def pitcher(speed: 155, age: )
  p "#{speed}, #{age}"
end

① pitcher()
ArgumentError: missing keyword: age

② pitcher(age: 20)
=> "155, 20"

①はageの値が無いため、エラーが発生。

②はageの値を実引数で渡しているため、実行される。

タイトルとURLをコピーしました