답변

10

이는 일반적으로 비교 연산자 대신 할당 연산자를 사용하지 못하도록하기 위해 수행됩니다. 예를 들어 우연히 입력 한 경우 :

if (object = nil) 

컴파일 될 수는 있지만 의도 한 바가 아닙니다.

두 번째 형식을 사용하면 잘못 입력하면 컴파일 타임 오류가 발생합니다. 할당시 왼쪽 피연산자로 사용할 수 없으므로 컴파일 오류가 발생합니다.

나는 객관적인 C 프로그래머가 아니지만,이 질문은 많은 언어에 일반적인 내용입니다.

+1

확인. 그것은 나에게 첫눈을 안겨주는 마음이 충분하다면 (당신이 =를 타이핑 할 경우를 대비해서), 당신은 이미 double ==을하도록 상기시켰다. 감사. – Bill

+0

사실 저는 보통 두 번째 형식을 고민하지 않지만 일부 사람들은 단지 안전하기를 선호하며 때로는 버그를 찾기가 어려울 때도 방지합니다. –

2

버전 == 대신 실수로 =를 넣을 경우에 대비하여 if (nil == object) 버전이 더 잘 보호합니다.