【Ruby3.x】CSV::Row::dig()メソッドの使い方
digメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
digメソッドは、CSV::Rowオブジェクト内のネストしたデータ構造から、指定されたキーやインデックスをたどって安全に値を取得するメソッドです。
CSV::Rowは、CSVファイルの一行を表すオブジェクトで、通常はCSVのヘッダ名をキーとして、対応するセルの値を保持するHashのような振る舞いをします。このdigメソッドは、複数の引数を渡すことで、まるで階層を深く掘り下げるようにデータにアクセスできます。
たとえば、row.dig("column_name", "nested_key")のように記述することで、「column_name」というキーに対応する値がさらにHashやArrayのような構造を持っている場合に、その中の「nested_key」というキーに対応する値を取り出すことが可能です。
最大の特長は、指定したキーやインデックスの途中に存在しないものがあっても、エラー(例外)を発生させずにnilを返す点です。これにより、存在しないデータへのアクセスを安全に行うことができ、プログラムの堅牢性を高めます。特に、CSVの特定のセルにJSON形式の文字列が格納されており、それをパースしたHashやArrayから特定の値を取り出したい場合などに非常に有用です。システムエンジニアを目指す初心者の方でも、複雑なデータ構造から必要な情報を簡単に、かつ安全に取得するための強力なツールとして活用できます。
構文(syntax)
1require 'csv' 2 3csv_row_object = CSV::Row.new(["header_name_1", "header_name_2"], ["value_1", "value_2"]) 4retrieved_value = csv_row_object.dig("header_name_1")
引数(parameters)
*indexes
- indexes: 取得したい値のインデックスを可変長引数で指定します。指定したインデックスの順に、ネストされた配列やハッシュから値を取得します。
戻り値(return)
Objectまたはnil
指定されたキーやインデックスに対応する要素の値を返します。要素が存在しない場合はnilを返します。