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

【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を返します。

関連コンテンツ

関連プログラミング言語