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