Saya baru saja masuk ke proyek dengan basis kode yang cukup besar.
Saya kebanyakan berurusan dengan C ++ dan banyak kode yang mereka tulis menggunakan negasi ganda untuk logika boolean mereka.
if (!!variable && (!!api.lookup("some-string"))) {
do_some_stuff();
}
Saya tahu orang-orang ini adalah pemrogram yang cerdas, jelas mereka tidak melakukan ini secara tidak sengaja.
Saya bukan ahli C ++ berpengalaman, satu-satunya dugaan saya mengapa mereka melakukan ini adalah bahwa mereka ingin memastikan bahwa nilai yang dievaluasi adalah representasi boolean yang sebenarnya. Jadi mereka meniadakannya, lalu meniadakannya lagi untuk mengembalikannya ke nilai boolean aslinya.
Apakah ini benar, atau saya melewatkan sesuatu?