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

instance method IO::Buffer#set_value

set_value(buffer_type, offset, value) -> IntegerRuby 3.1 から[permalink][rdoc][edit]

バッファの offset の位置に、buffer_type で指定した型で value を書き込みます。

指定できる型は IO::Buffer#get_value を参照してください。整数の型に Float を渡した場合は、小数点以下が切り捨てられます。

書き込んだ値の次の位置を返します。

[PARAM] buffer_type:
書き込む値の型をシンボルで指定します。
[PARAM] offset:
書き込む位置をバッファの先頭からのバイト数で指定します。
[PARAM] value:
書き込む値を数値で指定します。
[EXCEPTION] ArgumentError:
buffer_type が不正な場合や、書き込む範囲がバッファの外にはみ出す場合に発生します。
[EXCEPTION] IO::Buffer::AccessError:
読み取り専用のバッファに対して呼び出した場合に発生します。
buf = IO::Buffer.new(8)
buf.set_value(:U8, 1, 111)
p buf.get_string # => "\x00o\x00\x00\x00\x00\x00\x00"

# 整数の型に Float を渡すと小数点以下は切り捨てられる
buf = IO::Buffer.new(8)
buf.set_value(:U32, 0, 2.5)
p buf.get_value(:U32, 0) # => 2

[SEE_ALSO] IO::Buffer#get_value