Я подозреваю, что это осталось от C ++, где люди переопределяют! оператора, но не оператора bool.
Итак, чтобы получить отрицательный (или положительный) ответ, в этом случае вам сначала нужно будет использовать! оператор, чтобы получить логическое значение, но если вы хотите проверить положительный случай, используйте !!.