젊은이는 규칙을 알고 있지만 노인은 예외를 알고 있습니다.)
최신 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
. 이 언어에는 정수, 포인터, 목록 등을 참 또는 거짓으로 해석하는 고유 한 규칙이 있습니다. 때때로 당신은 그것을 원하지 않습니다. 예를 들어,이 Python 스 니펫에서 :
x = True
y = 'abcdef'
z1 = x and y
z2 = (x == True) and (y == True)
여기 z
있어야 True
하지만, z2
있어야합니다 False
. 자, Clojure
이 - 언어는 또 다른 방법으로이 문제를 접근 and
기능은 반드시에 평가하지 않습니다 bool
,하지만이 if
그것을 처리 할 수 있습니다.
에 관계없이 언어, 언제든지 당신은 자신이 뭔가를 비교 발견 True
하거나 False
, 아마 주석 가치가있다.
if (some_flag == true)
적이지만 암시 적if (is_something)
또는을 선호합니다if (has_something)
. 변수 이름을 적어 둡니다.