self & mask -> IO::BufferRuby 3.2 から[permalink][rdoc][edit]self | mask -> IO::Bufferself ^ mask -> IO::Buffer-
バッファの各バイトと mask の各バイトのビット演算(AND / OR / XOR)を行い、結果を格納した新しいバッファを返します。
返されるバッファの大きさは元のバッファと同じです。 mask が元のバッファより短い場合は、mask を先頭から繰り返し使います。
- [PARAM]
mask: - マスクを IO::Buffer で指定します。
- [EXCEPTION]
IO::Buffer::MaskError: - mask の大きさが 0 の場合に発生します。
# 4 バイトのマスクが 10 バイトに繰り返し適用される buf = IO::Buffer.for("1234567890") & IO::Buffer.for("\xFF\x00\x00\xFF") p buf.size # => 10 p buf.get_string.bytes.map {|b| "%02x" % b }.join(" ") # => "31 00 00 34 35 00 00 38 39 00"[SEE_ALSO] IO::Buffer#and!, IO::Buffer#or!, IO::Buffer#xor!
- [PARAM]