2 つのオブジェクトを XOR する必要があり、Ruby の組み込み XOR 演算子 ( ) を使用できると思ったのですが、うまくいき^
ません。オブジェクトの 1 つだけが初期化されたことをテストするために使用したかったのです。
a = Object.new
b = Object.new
a ^ b # => NoMethodError: undefined method `^' for #<Object:0x007...>
興味深いことに、私はできる
a = nil
b = Object.new
a ^ b # => true
Ruby が本質的に 2 つのオブジェクトの XOR を許可しないのは奇妙だと思います。不足している別のコマンドはありますか、それともこの機能は構築されていませんか?
明らかに私の問題の解決策は、次のことを行うことです:
(a || b) && !(a && b)