transfer -> IO::Buffer::StorageRuby 4.1 から[permalink][rdoc][edit]-
メモリ領域の所有権を新しい IO::Buffer::Storage へ移し、その新しいバッファを返します。
所有権を手放した自身は、どのメモリ領域も指さない状態になります。この状態は IO::Buffer#null? で調べられます。自身から IO::Buffer#slice で作った IO::Buffer::Slice は、無効になります。
IO::Buffer::Slice には、このメソッドはありません。
- [EXCEPTION]
FrozenError: - 凍結済みのバッファに対して呼び出した場合に発生します。
- [EXCEPTION]
IO::Buffer::LockedError: - ロックされているバッファに対して呼び出した場合に発生します。
buf = IO::Buffer.new(4) buf.set_string("Ruby") other = buf.transfer p other.get_string # => "Ruby" p buf.null? # => true p buf.size # => 0[SEE_ALSO] IO::Buffer::Storage#free, IO::Buffer#null?
- [EXCEPTION]