web-dev-qa-db-ja.com

Swift 1.2(Xcode 6.3)ブール値のxor '^'演算子を削除しましたか?

Xcode6.3のこのサンプルコード...

var str1 = ""
var str2 = ""
if str1.isEmpty ^ str2.isEmpty {
  // do something.
}

次のエラーが表示されます。

'^' is unavailable: use the '!=' operator instead

Appleドキュメントで仕様を見つけることができません。この仕様は(そして私はそれをまとめる必要があります)ですか?

19

それは明らかに意図的です:

$ 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
11
rintaro

論理XORを使用しようとしているとすると、!=あなたの目的を果たす必要があります。 ^はビット単位のXORです。したがって、Appleはブール値のためにそれを削除したことは理にかなっています。

27
lostInTransit