Ruby 4.1 リファレンスマニュアル

instance method IO::Buffer::Storage#resize

resize(size) -> selfRuby 4.1 から[permalink][rdoc][edit]

バッファの大きさを size バイトに変更します。

変更前の内容は保持されます。変更後の大きさによっては、メモリ領域が別の場所に確保しなおされ、内容がそこへコピーされます。

IO::Buffer.for で作った外部バッファや、ロックされたバッファは大きさを変更できません。 IO::Buffer::Slice の大きさは、IO::Buffer::Slice#resize で変更します。

[PARAM] size:
変更後の大きさをバイト数で指定します。
[EXCEPTION] IO::Buffer::AccessError:
大きさを変更できないバッファに対して呼び出した場合に発生します。
[EXCEPTION] FrozenError:
凍結済みのバッファに対して呼び出した場合に発生します。
[EXCEPTION] IO::Buffer::LockedError:
ロックされているバッファに対して呼び出した場合に発生します。
buf = IO::Buffer.new(4)
buf.set_string("test")

buf.resize(8)
p buf.size             # => 8
p buf.get_string(0, 4) # => "test"

IO::Buffer.for("abc").resize(8) # ~> IO::Buffer::AccessError

[SEE_ALSO] IO::Buffer::Slice#resize