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. Является ли это спецификацией (и мне придется ее комментировать)?
Ответы
Ответ 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.