Az önce oldukça büyük bir kod tabanı olan bir projeye geldim.
Çoğunlukla C ++ ile uğraşıyorum ve yazdıkları kodun çoğu boole mantığı için çift olumsuzlama kullanıyor.
if (!!variable && (!!api.lookup("some-string"))) {
do_some_stuff();
}
Bu adamların zeki programcılar olduklarını biliyorum, bunu kazara yapmadıkları açık.
Deneyimli bir C ++ uzmanı değilim, bunu neden yaptıklarına dair tek tahminim, değerlendirilen değerin gerçek boole temsili olduğu konusunda kesinlikle pozitif yapmak istedikleridir. Böylece, onu olumsuzlarlar, sonra onu gerçek boole değerine geri döndürmek için tekrar reddederler.
Bu doğru mu yoksa bir şey mi kaçırıyorum?