Для компилятора подчеркивания обрабатываются как любой алфавитный символ. Однако в целом подчеркивания обычно используются языковыми расширениями или большими библиотеками, чтобы избежать конфликтов с пользовательским кодом.
Использование символов подчеркивания проблематично, поскольку многие группы пытаются зарезервировать каждое имя определенной комбинацией символов подчеркивания.
Apple традиционно использует один префикс подчеркивания для обозначения частной переменной экземпляра (общий стиль в объектно-ориентированных языках). Это было сделано для того, чтобы подразумевать, что каждый должен ставить префикс своих иваров с подчеркиванием до тех пор, пока Apple не укажет, что использование подчеркивания в вашем коде может создать конфликты с Какао, если Apple решит изменить свои заголовки, а может быть, и нет. Таким образом, префиксы подчеркивания стали «не рекомендуемой» практикой кодирования.
В C и C производных языках любое слово с двойным подчеркиванием перед и после является нестандартным расширением языка. Смотрите расширения Apple, такие как __attribute __
Конечные подчеркивания часто добавляются в виде искаженных имен исходных имен компилятора или отладчика (особенно, когда компилятор является многопроходным), и их обычно избегают, чтобы эти имена оставались четко отличными от оригиналов. Google суффикс их локальных переменных экземпляра Objective-C с подчеркиванием, чтобы избежать конфликтов с подчеркиванием Apple.
Мой совет: не используйте подчеркивание. Вы не должны использовать локальные переменные с тем же именем, что и переменные экземпляра (это просто сбивает с толку). Единственный потенциальный конфликт - между параметрами в методах установки и соответствующими переменными экземпляра - и вам, вероятно, следует поставить перед параметром префикс «a», «new» (или аналогичный) в нижнем регистре, поскольку это ясно указывает на то, что параметр является входящими значениями. но еще не является "значением".