Ruby unterstützt binäre 'oder' und other binary operations auf Werte vom Typ Fixnum und Bignum, dh jede ganze Zahl. Bitwise-Operationen werden für Strings oder andere Typen nicht unterstützt, soweit ich weiß.
Wie andere Leute erwähnt haben, möchten Sie wahrscheinlich etwas anderes als binäre Operationen insgesamt. Sie können jedoch leicht ganzzahlige Darstellungen von Zeichen zu bekommen, so können Sie die Zeichen vergleichen, wie so:
a = "Cake"
b = "Pie"
puts a[0] | b[0] # Prints "83" - C is 67 and P is 80.
Sie können ein Array der Vergleiche leicht mit einigen Conversions.
a = "Cake"
b = "Pie " # Strings of uneven length is trivial but more cluttered.
a_arr = a.split(//)
b_arr = b.split(//)
c_arr = []
a.each_with_index { |char, i| c.push(a[i].to_i | b[i].to_i) }
# If you *really* want an ASCII string back...
c = c_arr.collect(&:chr).join
Diese Frage überhaupt nicht sinnvoll.Bitweises ODER der Strings "hi" und "ho" ist gleich "ho". Wenn s == "hi", würde Ihr vorgeschlagener Ausdruck * also false * zurückgeben. Wenn Sie verschiedene Zeichenfolgen verwenden, ist das Ergebnis der bitweisen Operation möglicherweise noch unsinniger. – molf