Rozglądam się nad wersjami przesłanymi do projektu przez innego programistę i mają one dużo kodu, który ma !!<some BOOL value>
. W rzeczywistości wydaje się, że jest to ich standardowy wzorzec do implementacji Boolean pobierających i ustawiających. Zaimplementowali swój kod:Objective-C - Jest !! BOOL Beneficial
- (BOOL) hasId {
return !!hasId_;
}
- (void) setHasId:(BOOL) value {
hasId_ = !!value;
}
Nigdy wcześniej nie widziałem tego wzoru i zastanawiam się, czy jest jakaś korzyść z jego używania. Czy podwójna negacja robi coś pożytecznego?
tylko raz widziałem, że było to dla klasy, która nie miała prostego sposobu rzucania do boola, więc nie mogli zrobić 'if (myInstance)', ale przeciążyła jednoargumentowy operator '!' , więc zrobiliby "if (!! myInstance)". Ale w twoim przypadku nie mam pojęcia. – filipe