【Ruby3.x】String::bytesize()メソッドの使い方
bytesizeメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
bytesizeメソッドは、レシーバであるStringオブジェクトが保持する文字列のバイト数を返します。Rubyの文字列は、その内部で特定の文字エンコーディング(例えばUTF-8、Shift_JISなど)を持っています。このエンコーディングによって、同じ文字数でも必要となるメモリ上のバイト数が異なります。bytesizeメソッドは、この文字列が現在持っているエンコーディングに基づいて、実際にメモリ上で占めるバイト数を正確に計算し、整数値として返します。
例えば、エンコーディングがUTF-8の場合、「abc」というASCII文字列のbytesizeは3となりますが、「あいう」という日本語文字列のbytesizeは9となります。これは、各日本語文字がUTF-8では通常3バイトを消費するためです。一方、lengthやsizeメソッドは、エンコーディングに関わらず、その文字列に含まれる「文字の数」を数えます。したがって、これらのメソッドが返す値とbytesizeメソッドが返す値は、特にマルチバイト文字を含む文字列において異なる場合があることに注意が必要です。
このメソッドは、ファイルへの書き込み時や、ネットワークを介してデータを送信する際に、データの実際のサイズ(バイト単位)を正確に把握する必要がある場面で特に有用です。また、特定のデータ形式やプロトコルでバイト数に厳密な制限がある場合にも利用されます。文字列の論理的な長さではなく、物理的なデータサイズを知りたい場合にbytesizeメソッドは重要な役割を果たします。
構文(syntax)
1"Hello, Ruby!".bytesize
引数(parameters)
引数なし
引数はありません
戻り値(return)
Integer
文字列が格納されているメモリ上のバイト数を整数で返します。