로컬 변수와 구별하기 위해 예를 들어 변수 이름 지정에 접두사 밑줄을 사용했습니다. 변수 이름 지정을위한 _iVar 대 iVar_
은 내가 "구글 오브젝티브 C 스타일 가이드"을보고 무슨 일이 생긴하고, 후행 밑줄 (IT HERE를 참조)를 사용하는 제안 발견,하지만 이유에 대한 상세한 설명없이.코딩 스타일 문제인지는 알지만, 밑줄을 사용하면 어떤 장점이 있습니까?
로컬 변수와 구별하기 위해 예를 들어 변수 이름 지정에 접두사 밑줄을 사용했습니다. 변수 이름 지정을위한 _iVar 대 iVar_
은 내가 "구글 오브젝티브 C 스타일 가이드"을보고 무슨 일이 생긴하고, 후행 밑줄 (IT HERE를 참조)를 사용하는 제안 발견,하지만 이유에 대한 상세한 설명없이.코딩 스타일 문제인지는 알지만, 밑줄을 사용하면 어떤 장점이 있습니까?
관련 : Question about @synthesize
는 장점이있다 (답 하단의 blockquotes 참조) : (심지어 애플 템플릿) _var 개인에 대한 (C99, 코코아 지침) 관례이지만, 너무 일반적입니다을 그 애플 이중 밑줄 __var을 사용합니다. Google은 대신 밑줄을 사용하여 문제를 해결합니다.
...
밑줄도 C에서 권장하지 않습니다
는 ++ (참조 What are the rules about using an underscore in a C++ identifier?)와 코어 데이터의 특성 은 (선두를 추가하려고 모델에 밑줄 " 이름은 문자로 시작해야합니다.").밑줄이주의할만한 선택이지만, 이 다른 경우 충돌이 발생하지 않을 가능성이 높습니다. 그렇다면 컴파일러에게 경고 메시지가 표시됩니다.
접두사 밑줄은 일반적으로 시스템/SDK 라이브러리에서 사용됩니다. 따라서 접두사 밑줄을 사용하면 수퍼 클래스에서 변수가 무시 될 수 있으며 이와 같은 버그는 쉽게 발견되지 않습니다. NSView와 같은 시스템에서 제공하는 클래스를 살펴보면 알게 될 것입니다.
그래, 나는 들었지만 XCode4가 인스턴스 변수 앞에 밑줄을 포함하도록 응용 프로그램 템플릿을 업데이트한다는 것을 알게되었습니다. – Kjuly
거의 모든 프로그래밍 언어는 우리가 왼쪽에서 오른쪽으로 쓰고 읽는 곳을 기반으로합니다.
선행 밑줄을 사용하면 iVars를 쉽게 찾고 변수가 iVar임을 인식 할 수 있습니다.
그래,'_iVar'는 ivars를 찾는 것이 더 편리합니다. 그러나 볼 수 있듯이 _Google Objective-C 스타일 가이드 _는 'iVar_'을 제안합니다 .. – Kjuly
Google 문서에는 왜 밑줄을 사용하는 것이 좋은지 설명되어 있지 않습니다.
또한, 지역 변수의 이름을 지정하는 데있어서 헝가리 표기법을 포기할 것을 제안하는 것에 동의하지 않습니다. –
Apple은 ivars에 하나의 밑줄을 사용하므로 변수 이름이 우리와 충돌하지 않습니다. 당신이 ivars의 이름을 지정할 때 이외의 문자는을 하나만 사용하십시오.
Google은 이러한 충돌을 해결하기 위해 단일 밑줄 대신 밑줄을 사용합니다. – Kjuly
오 ...별로 적합하지 않습니까? 의견을 남겨주세요. : ( – Kjuly
"정답"이있는 것보다 주관적인 토론 질문이 더 많음 – jrturton
감사합니다. @jrturton,하지만 저는 'iVar_'에 대한 몇 가지 이유를 설명하기 위해 좋은 대답이 필요합니다. 그래서 이것을 동료에게 보여주고 토론 할 수 있습니다. 그와 함께 : p – Kjuly