Genç kuralları biliyor, ama yaşlı istisnaları biliyor;)
Sonunda C#
, bir ile başa null-able bool
çıkıyorsanız, o zaman yapmanız gereken:
bool? x = null;
bool? y = true;
bool? z = false;
if (x == true || y == true || z == true) {
// That was the only way that is reasonably readable that I know of
// to accomplish this expression.
}
Tristat sorun değilse, genellikle true
/ ile karşılaştırmak için bir sebep olmamalıdır True
. Bununla birlikte, içinde Python
ve C/C++
sizin gibi birkaç başka dilde if
bir bool olmayan ifadede gerçekleştirebilirsiniz. Bu dillerin tamsayıları, işaretçileri, listeleri vb. Doğru ya da yanlış olarak yorumlaması için benzersiz kuralları vardır. Bazen bunu istemezsin. Örneğin, bu Python kod parçasında:
x = True
y = 'abcdef'
z1 = x and y
z2 = (x == True) and (y == True)
Burada z
olmalı True
, fakat z2
olmalıdır False
. Şimdi, bir Clojure
dil buna başka bir yoldan yaklaşır - orada and
işlev mutlaka bir a'ya göre değerlendirilmez bool
, bununla if
başa çıkabilir.
Ne olursa olsun dilin, her zaman kendinizi bir şeyler karşılaştırarak bulmak True
ya False
, muhtemelen yorumlama değer.
if (some_flag == true)
örtük olanı tercih ederimif (is_something)
veyaif (has_something)
. Değişken isimlerini not edin.