Что означает ^ = в Objective-C? - PullRequest
0 голосов
/ 06 мая 2019

Я нашел эту часть кода «^ =» в каком-то старом проекте, я видел, как он меняет состояние, когда я вызываю «status ^ = YES;».Может кто-нибудь объяснить мне, что это такое?

BOOL status = YES; 
status ^= YES;

1 Ответ

4 голосов
/ 06 мая 2019

https://en.wikipedia.org/wiki/Bitwise_operations_in_C

Побитовое XOR (исключающее или) выполняет логическую функцию XOR, которая эквивалентна добавлению двух битов и отбрасыванию переноса. Результат равен нулю только тогда, когда у нас есть два нуля или два. XOR может использоваться для переключения битов между 1 и 0. Таким образом, i = i ^ 1 при использовании в цикле переключает свои значения между 1 и 0.

Итак, status ^= YES - это разумный способ переключения между 1 и 0, то есть ДА и НЕТ. Простые смертные скажут status = !status.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...