!!
преобразует результат в YES
или NO
.
Использование !!x
- идиома из C. Результат этого выражения:
!!x == 0
при x == 0 // x is zero
!!x == 1
при x != 0 // x is non-zero
По крайней мере в C вы можете использовать любое ненулевое выражение в качестве значения, которое удовлетворяет условию if ()
или другому условному потоку управления. Однако иногда приятно знать, что «истинное значение» представлено 1
, а не просто «ненулевым».
В Objective-C YES
определяется как 1
, а не как "ненулевой". Таким образом, в Objective-C эта идиома C становится более полезной.
Другой способ выразить это:
!!x == NO
при x == NO
!!x == YES
при x != NO