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

singleton method IO::Buffer.string

string(length) {|buffer| ... } -> StringRuby 3.3 から[permalink][rdoc][edit]

length バイトの文字列を新しく作り、それを元にしたコピーを伴わないバッファをブロックに渡します。ブロックの実行後、その文字列を返します。

ブロックの中でバッファに書き込んだ内容が、そのまま返される文字列の内容になります。返される文字列のエンコーディングは Encoding::BINARY です。

[PARAM] length:
作成する文字列のバイト数を整数で指定します。
[EXCEPTION] LocalJumpError:
ブロックを渡さなかった場合に発生します。
str = IO::Buffer.string(4) do |buffer|
  buffer.set_string("Ruby")
end
p str                 # => "Ruby"
p str.encoding.name   # => "ASCII-8BIT"

[SEE_ALSO] IO::Buffer.for