Подтвердить что ты не робот

Swift 1.2 (Xcode 6.3) удалил оператор xor '^' для значения Bool?

Этот пример кода на Xcode 6.3...

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

отображается следующая ошибка.

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

Я не могу найти спецификацию в документации Apple. Является ли это спецификацией (и мне придется ее комментировать)?

4b9b3361

Ответ 1

Он явно преднамерен:

$ 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

Ответ 2

Предполагая, что вы пытаетесь использовать логический XOR, a != Должен служить вашей цели. ^ - побитовое XOR. Поэтому имеет смысл, что Apple удалил его для значений bool.