たまに他の人が書いたコードを見ているとはまることがあります。今回の二重否定も、ネット検索して調べるのに意外と時間がかかったのでメモとして残します。
二重否定で!!を用いる
真偽値を逆転させるので、二回連続!!でしようすれば、当然、元に戻ります。最初trueだったものが一度falseに変わってtrueに戻ります。
二重否定の使用方法
例えば何かを検索して、該当項目があればその値を返し、該当項目がなければnullを返すような関数があるとします。そのようなときに、該当項目があるなしのみを真偽値として得たいが、該当項目の値自体はいらないことがあると思います。以下のように==で真偽判断をするのもやり方の一つです。
a = 10 b = null a == null //戻り値はfalse b == null //戻り値はtrue
否定演算子を利用するともっと簡略的なコードで同様の判定ができます。
a = 10 b = null !!a //戻り値はtrue !!b //戻り値はfalse