and!(mask) -> selfRuby 3.2 から[permalink][rdoc][edit]or!(mask) -> selfxor!(mask) -> self-
IO::Buffer#& などと同じビット演算を、新しいバッファを作らずに自身に対して行います。
selfを返します。mask が自身より短い場合は、mask を先頭から繰り返し使います。
- [PARAM]
mask: - マスクを IO::Buffer で指定します。
- [EXCEPTION]
IO::Buffer::MaskError: - mask の大きさが 0 の場合に発生します。
- [EXCEPTION]
IO::Buffer::AccessError: - 読み取り専用のバッファに対して呼び出した場合に発生します。
# IO::Buffer.for はブロックを渡さないと読み取り専用になるので、dup で複製する buf = IO::Buffer.for("1234567890").dup buf.and!(IO::Buffer.for("\xFF\x00\x00\xFF")) p buf.get_string.bytes.map {|b| "%02x" % b }.join(" ") # => "31 00 00 34 35 00 00 38 39 00" IO::Buffer.for("1234").and!(IO::Buffer.for("\xFF")) # ~> IO::Buffer::AccessError[SEE_ALSO] IO::Buffer#&, IO::Buffer#|, IO::Buffer#^
- [PARAM]