Ruby/Rubyの基礎知識

Ruby2.0の新機能キーワード引数の紹介と、2.1での改良点(2ページ目)

Ruby2.0で追加された新機能キーワード引数を、1.9までのイディオムである擬似キーワード引数と比較しながら紹介します。また、最後にRuby2.1でのキーワード引数の改良点も扱います。

橋本 拓也

執筆者:橋本 拓也

Rubyガイド

Ruby1.9までの慣習、擬似キーワード引数

キーワード引数のメリットを表す例として、Rubyメソッドの「よくある使われ方」である「擬似キーワード引数」について説明します。

一般的に、メソッドの利用パターンが複雑化してくると引数の数も増え、引数の順序を間違えずに呼び出すのが難しくなります。説明のために、以下の様な引数のごちゃごちゃしたメソッドを用意します。

こうしたメソッド定義においては、呼び出し時にたとえば次のような問題に直面しがちでした。

このように引数の順序が固定だと使い勝手が悪いため、Ruby1.9まで慣習的に使われてきたのが「擬似キーワード引数」というイディオムです。これは、必須ではない引数などを最後にハッシュとして渡し、それをメソッド内で分解、利用するものです。

*argsは任意長引数で、2個目以降の引数をすべて配列としてargsの中に格納しています。最後の要素がHashであるときはメソッド内でそれをオプションとみなして利用され、一方、オプションが指定されていない場合は || 演算子の右側に置いたデフォルト値が使われます。

以上のようにメソッドを定義してやることで、次のようにオプション名を明示しつつ、シンプルに呼び出すことが出来ます。

次のページでは、同じ題材でキーワード引数を使った場合の書き方を示し、Ruby2.1で追加された改良点にも触れます。

  • 前のページへ
  • 1
  • 2
  • 3
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます