1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

golangにbool型のXOR演算子がない

Posted at

はじめに

某サイトのプログラミングスキルチェックで、練習のためgolangで簡単な問題を解いていました。
私は他の言語では、もう…それはもう仕事では出せないような変態的な手法等使って解いたりしていて、それが脳の端でちらつき、不慣れな言語ではどうやってやるのだろうか、と検索をかけたりしています。

問題について

if (/* 式1 */) /*XOR演算子*/ (/* 式2 */) {
  // 処理A
} else {
  // 処理B
}

問題を解くにあたって、bool型のXOR演算子を使いたい、と思った場面がありました。
しかし、「golang xor」で検索すると、int型同士のビット演算ばかりが検索画面に並びます。
ならばと「golang xor bool」で検索しても、XORではない演算子のみが出てきます。
更に調べると……そもそもbool型に対するXOR演算子など無いことが判明しました。

解決法

しかしよく考えてみれば、XOR演算子ではないものの、同等の役割を持つものがありました。

if (/* 式1 */) != (/* 式2 */) {
  // 処理A
} else {
  // 処理B
}

それぞれの式がtrue, falseのときどのような結果になるかを考えれば、たしかにそうだった、と思ったのでした。

最後に

思考が膠着して、簡単な解決法を見落とさないようにしたいものです……。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?