19

Xcode 6.3 でのこのサンプル コード ...

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

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

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

Apple のドキュメントに仕様が見つかりません。これは仕様ですか (ひとまとめにする必要があります)。

4

2 に答える 2

30

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

于 2015-04-10T07:39:52.120 に答える
14

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

$ 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
于 2015-04-10T14:02:12.910 に答える