젊은이는 규칙을 알고 있지만 노인은 예외를 알고 있습니다.)
최신 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). 변수 이름을 적어 둡니다.