Xcode6.3のこのサンプルコード...
var str1 = ""
var str2 = ""
if str1.isEmpty ^ str2.isEmpty {
// do something.
}
次のエラーが表示されます。
'^' is unavailable: use the '!=' operator instead
Appleドキュメントで仕様を見つけることができません。この仕様は(そして私はそれをまとめる必要があります)ですか?
それは明らかに意図的です:
$ echo ':print_module Swift' | Swift -deprecated-integrated-repl | fgrep "use the '!=' operator instead"
ショー:
@availability(*, unavailable, message="use the '!=' operator instead") func ^=(inout lhs: Bool, rhs: Bool)
@availability(*, unavailable, message="use the '!=' operator instead") func ^(lhs: Bool, rhs: Bool) -> Bool
論理XORを使用しようとしているとすると、!=
あなたの目的を果たす必要があります。 ^
はビット単位のXORです。したがって、Appleはブール値のためにそれを削除したことは理にかなっています。