1. ホーム
  2. swift

[解決済み] Swift 5でXOR?

2022-02-10 19:26:34

質問

Swift 5でXOR演算を行おうとしています。ドキュメントでは、ここで2つのブール値でそれを行うことを明示的に言及していないようです。

https://docs.swift.org/swift-book/LanguageGuide/AdvancedOperators.html

これは可能なのでしょうか?を使用するように書いてあります。 ^ というオペレーションがありますが、試すとエラーが出ます。

 card != nil ^ appointment.instructor == nil

ERROR 隣接する演算子が非相関優先順位グループ 'ComparisonPrecedence' に属しています。

どのように解決するのですか?

を定義する必要があります。 ^ に対して Bool は、Ints に対してのみ存在するためです。 appleのドキュメントを参照してください。 ここで .

import UIKit
import PlaygroundSupport

extension Bool {
    static func ^ (left: Bool, right: Bool) -> Bool {
        return left != right
    }
}

let a = true
let b = false
print (a^b)