【Ruby3.x】String::unpack1()メソッドの使い方
unpack1メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
unpack1メソッドは、文字列をバイナリデータとして解釈し、指定されたフォーマットに基づいて単一の値を抽出するメソッドです。
このメソッドは、Stringクラスのインスタンスに対して呼び出され、レシーバとなる文字列の内容を、バイナリ形式のデータとして読み込みます。引数には、どのようにデータを解釈するかを指定するフォーマット文字列を渡します。指定されたフォーマットに従って文字列の先頭からデータを読み込み、その結果として得られる最初の要素(単一の値)を返します。
Rubyには似た機能を持つunpackメソッドも存在しますが、unpackが複数の値を配列として返すのに対し、unpack1は常に最初の要素のみを返します。そのため、特定のバイナリデータの中からただ一つの情報だけを取り出したい場合に特に便利です。
フォーマット文字列は、例えば"C"を指定すれば1バイトの符号なし整数、"s"を指定すれば2バイトの符号付き整数、"f"を指定すれば単精度浮動小数点数としてデータを解釈するといったように、様々なデータ型やバイトオーダー(エンディアン)を表現できます。主に、ファイルから読み込んだバイナリデータや、ネットワーク経由で受信したプロトコルパケットなど、構造化されたバイナリデータから特定の情報を効率良く取り出したい場面で活用されます。返り値は、フォーマットに応じて整数、浮動小数点数、または文字列など、変換された単一の値となります。
構文(syntax)
1"abc".unpack1("C")
引数(parameters)
format
- format: unpack1 メソッドで、バイナリデータをどのように解釈するかを指定するフォーマット文字列
戻り値(return)
Object
指定されたフォーマット文字列に従って、文字列を配列に展開した結果を返します。