Rubyだと^が論理XORかいな?
$ irb
> true ^ true
=> false
> true ^ false
=> true
> false ^ true
=> true
> false ^ false
=> false
> self ^ other -> Integer
> ビット二項演算子。排他的論理和を計算します。
あ、あれれ?
https://docs.ruby-lang.org/ja/latest/method/Integer/i/=5e.html
レシーバで変わるのか。左辺が真偽値になるようにしないと期待しない結果になるね。
> true ^ 1 # 1は真と解釈される(0でも真)
=> false
> 1 ^ 1 # 左の1は整数なので^はビット演算子。1は整数の1と解釈される
=> 0
@zundan その辺最初に知った時、&&みたいな^^が無いのが意外に感じました。(^^)←単なる顔文字で混乱する例。
@tadd 顔文字も混乱するけどレシーバで振る舞いが変わるの知らないと変なバグになりそうですね…