Я просматриваю различия, представленные в проект другим разработчиком, и у них есть много кода, который выполняет !! <какое-то значение BOOL >
. Фактически, это их стандартный шаблон для реализации логических геттеров и сеттеров. Они реализовали свой код следующим образом:
- (BOOL) hasId {
return !!hasId_;
}
- (void) setHasId:(BOOL) value {
hasId_ = !!value;
}
Я никогда раньше не видел этого шаблона, и мне интересно, есть ли польза от его использования. Делает ли двойное отрицание что-нибудь полезное?