Yang muda tahu aturannya, tetapi yang tua tahu pengecualiannya;)
Terbaru C#
, jika Anda berurusan dengan null-able bool
, maka Anda harus:
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.
}
Jika tristate bukan masalah, maka biasanya tidak ada alasan untuk membandingkan sesuatu dengan true
/ True
. Namun, dalam Python
dan beberapa bahasa lain seperti C/C++
Anda dapat melakukan if
pada ekspresi non-bool. Bahasa-bahasa ini memiliki aturan unik untuk menafsirkan bilangan bulat, pointer, daftar, dll. Baik benar atau salah. Terkadang Anda tidak menginginkannya. Misalnya, dalam cuplikan Python ini:
x = True
y = 'abcdef'
z1 = x and y
z2 = (x == True) and (y == True)
Di sini z
seharusnya True
, tetapi z2
harus False
. Sekarang, suatu Clojure
bahasa mendekati ini dengan cara lain - and
fungsi di sana tidak harus mengevaluasi ke a bool
, tetapi if
dapat mengatasinya.
Terlepas dari bahasanya, setiap kali Anda menemukan diri Anda membandingkan sesuatu dengan True
atau False
, mungkin ada baiknya berkomentar.
if (some_flag == true)
tapi implisitif (is_something)
atauif (has_something)
. Perhatikan nama variabelnya.