【Ruby3.x】String::unpack()メソッドの使い方
unpackメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
unpackメソッドは、RubyのStringクラスに属し、指定された書式(テンプレート)に従って文字列をバイナリデータとして解釈し、その結果を要素とする配列を生成するメソッドです。これは、外部から読み込んだバイナリファイルの内容や、ネットワーク経由で受信したバイト列など、特定の構造を持つデータをRubyのプログラムで扱いやすい形に変換する際に非常に役立ちます。
このメソッドは引数として「書式指定文字列(テンプレート)」を受け取ります。このテンプレートは、元の文字列のどの部分をどのようなデータ型(例えば、整数、浮動小数点数、文字列など)として読み取るかを細かく指定するための特別なコードの集まりです。例えば、「C」は1バイトの符号なし整数として、「S」はシステムのバイト順に応じた2バイトの符号なし整数として解釈するよう指示します。また、テンプレートにはデータの繰り返し回数やバイト順を指定するオプションも含まれており、これにより多様なバイナリ形式に対応できます。
unpackメソッドの利用により、例えばC言語の構造体とRubyのデータを相互に変換したり、特定のバイナリプロトコルを実装したりすることが容易になります。メソッドの実行後、解釈された個々の値は配列の要素として返されるため、その後のRubyプログラムで簡単に利用することができます。バイナリデータを扱う際の柔軟性と強力な機能を提供する、非常に重要なメソッドです。
構文(syntax)
1"バイナリデータ文字列".unpack("フォーマット文字列")
引数(parameters)
format_string
- format_string: 文字列の解析方法を指定するフォーマット文字列
戻り値(return)
Array
文字列をフォーマット文字列に基づき解析し、その結果を配列に格納して返します。