【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 が発生しますが、デフォルト値を指定している場合はその値が返されます。