Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】CSV::Row::fetch()メソッドの使い方

fetchメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

fetchメソッドは、CSVファイルの一行を表すCSV::Rowオブジェクトから、指定されたキーに対応する値を取り出すメソッドです。CSV::Rowオブジェクトは、ヘッダ付きのCSVデータの場合、列名をキーとして各列の値にアクセスできる仕組みを持っています。このメソッドの主な用途は、特定の列のデータを安全に取得することにあります。

引数として、取得したい列のヘッダ名(文字列やシンボル)または列のインデックス(整数)であるキーを指定します。通常、指定されたキーがCSV::Rowオブジェクト内に存在しない場合、KeyErrorというエラーが発生し、プログラムの実行が停止してしまいます。しかし、fetchメソッドはこの問題を解決するための代替手段を提供します。

一つ目の代替手段として、fetchメソッドの第二引数にデフォルト値を渡すことができます。キーが見つからなかった場合、エラーを発生させる代わりに、このデフォルト値が返されます。これにより、プログラムが予期せぬエラーで停止することなく、適切な代替値を扱えるようになります。

二つ目の代替手段として、ブロックを渡すことも可能です。キーが見つからなかった場合、指定したブロックが実行され、そのブロックの評価結果が返されます。ブロックには見つからなかったキーが引数として渡されるため、キーに応じた柔軟なデフォルト値の生成や、より詳細なエラー処理を行うことができます。

このように、fetchメソッドはCSVデータ処理において、キーの有無に起因するエラーを効果的に回避し、より堅牢で安定したプログラムを開発するために不可欠なツールです。

構文(syntax)

1require 'csv'
2
3row = CSV::Row.new(["id", "name"], [1, "Example Item"])
4
5value = row.fetch("description", "No Description Available")

引数(parameters)

key, if_absent = nil

  • key: 取得したい値に対応するキー(文字列またはシンボル)
  • if_absent = nil: 指定したキーが存在しない場合に返されるデフォルト値。指定しない場合は nil が返されます。

戻り値(return)

Object

fetch メソッドは、指定したキーに対応する値を返します。キーが存在しない場合は KeyError が発生しますが、デフォルト値を指定している場合はその値が返されます。

関連コンテンツ

関連プログラミング言語