Молодые знают правила, а старые знают исключения;)
В последнем C#
случае, если вы имеете дело с null-able bool
, то вам необходимо:
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.
}
Если tristate не является проблемой, то обычно не должно быть причины сравнивать что-либо с true
/ True
. Тем не менее, в Python
некоторых других языках, таких как C/C++
вы, вы можете выполнять выражения, if
отличные от bool. Эти языки имеют уникальные правила для интерпретации целых чисел, указателей, списков и т. Д. Как истинных или ложных. Иногда ты этого не хочешь. Например, в этом фрагменте Python:
x = True
y = 'abcdef'
z1 = x and y
z2 = (x == True) and (y == True)
Здесь z
должно быть True
, но z2
должно быть False
. Теперь Clojure
язык подходит к этому еще одним способом - там and
функция не обязательно оценивает a bool
, но if
может справиться с этим.
Независимо от языка, каждый раз, когда вы сравниваете что-то с True
или False
, это, вероятно, стоит комментировать.
if (some_flag == true)
но неявноеif (is_something)
илиif (has_something)
. Обратите внимание на имена переменных.