Соглашение о присвоении имен в Objective C/C, запустите с “_”?

Что-то я вижу, что люди определяют переменную как это:

b2World *_world;
b2Body *_body;
CCSprite *_ball;

вместо

b2World *world;
b2Body *body;
CCSprite *ball;

Я знакомый со вторым, но не первым. Так, я проверил Википедию о соглашении о присвоении имен:

Имена, начинающиеся с двойного подчеркивания или подчеркивания и прописной буквы, резервируются для реализации (компилятор, стандартная библиотека) и не должны использоваться (например, __ зарезервированный или _Reserved).

Так, то, что какое-либо особое значение, которое является запуском с "_"?

Код, который я видел, который использование "_" для начала здесь:

http://www.raywenderlich.com/457/intro-to-box2d-with-cocos2d-tutorial-bouncing-balls

Страница Wiki.

5
задан Tattat 18 April 2010 в 00:37
поделиться

3 ответа

Некоторые разработчики Objective-C установили давнее соглашение о префиксе переменных экземпляра с помощью символа подчеркивания. Это может быть полезно по-разному: во-первых, упрощает поиск переменных экземпляра в файле .m; во-вторых, это избавляет разработчиков от необходимости придумывать творческие имена для параметров методов, чтобы избежать конфликтов с именами переменных экземпляра; и в-третьих, как отмечали другие, это указывает на то, что переменные экземпляра являются частными и, следовательно, не должны быть доступны волей-неволей во всем коде.

На самом деле, я бы рекомендовал избегать прямого доступа к переменным экземпляра в методах, отличных от методов доступа (геттеры и сеттеры), -dealloc и -init ... . Не то, чтобы вы никогда не использовали их где-либо еще, но вы должны хотя бы немного подумать, прежде чем использовать переменную экземпляра непосредственно в других методах.

13
ответ дан 18 December 2019 в 11:54
поделиться

Apple резервирует имена, начинающиеся с подчеркивания, для своих частных ivars и методов. В Objective-C на любой платформе Apple не рекомендуется ставить перед идентификаторами знак подчеркивания.

http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/NamingMethods.html

-1
ответ дан 18 December 2019 в 11:54
поделиться

Обычно они используются для переменных, к которым нельзя обращаться за пределами текущего файла / модуля / пространства имен / чего угодно, на языках, которые не поддерживают ограничение доступ с помощью чего-то вроде частного ключевого слова

0
ответ дан 18 December 2019 в 11:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: