Os jovens conhecem as regras, mas os velhos conhecem as exceções;)
No mais recente C#
, se você estiver lidando com um null-able bool
, precisará:
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.
}
Se tristate não for um problema, geralmente não deve haver um motivo para comparar algo com true
/ True
. No entanto, em Python
vários idiomas, como C/C++
você pode executar uma if
expressão não-booleana. Esses idiomas têm regras exclusivas para interpretar números inteiros, ponteiros, listas etc. como verdadeiros ou falsos. Às vezes você não quer isso. Por exemplo, neste trecho de código Python:
x = True
y = 'abcdef'
z1 = x and y
z2 = (x == True) and (y == True)
Aqui z
deveria estar True
, mas z2
deveria estar False
. Agora, uma Clojure
linguagem aborda isso de outra maneira - a and
função não necessariamente avalia como a bool
, mas if
pode lidar com isso.
Independentemente do idioma, sempre que você se comparar a algo True
ou False
, provavelmente vale a pena comentar.
if (some_flag == true)
mas o implícitoif (is_something)
ouif (has_something)
. Observe os nomes das variáveis.