다음과 같은 코드를 보게 되었다.
if ({불리언 변수} == false)
{
// 코드
}
'!'를 사용하면 '== false'를 빼도 된다고 지적하자 코드 작성자께서는 '!' 연산자가 오히려 읽기 불편하다고 말씀하셨다. 실제로 그럴듯하게 들린다. '!'는 눈에 잘 띄지 않기 때문이다. 그래서 이 주제를 구글링해보았다. 다음은 이 주제에 관한 Stack Overflow 질문글이다.
글1: Using if (!bool) vs if (bool == false) in C#
글2: Is it bad to explicitly compare against boolean constants e.g. if (b == false) in Java?
이 글들을 요약하면 다음과 같다.
- '!'가 조금 더 빠르다. (but 컴파일러에 따라 최적화가 될 수도 있음)
- 일반적으로 '!'를 사용한다. (적어도 위 글들에서는)
- '== false'가 읽기 편하다고 말하는 사람들도 있다.
- NULL이 들어갈 수 있는 경우(C#의 Nullable)에는 '== false'가 유용하게 사용된다.
필자는 앞으로도 '!'를 사용하려 한다. 위 글에서도 언급되어 있듯이 '!'는 다음과 같은 우위를 갖고 있다.
- 조금 더 빠르다
- 일반적인 스타일이다
그리고 '!'에 익숙해지면 그다지 헷갈리지도 않는다. '!'보다 '== false'가 편한 사람들은 아직 코드에 익숙하지 않은 게 아닐까 생각한다.