Я запутался в соглашении (именовании) использования символа underscore _
в именах переменных и имени методов в качестве их стартовой буквы. Например _sampleVariable
и _getUserContext()
. Может ли кто-нибудь уточнить, когда его использовать?
Использование подчеркивания в именах переменных и методов
Ответ 1
См. Java Именованные контравы
За исключением переменных, все константы экземпляра, класса и класса находятся в смешанном случае с строчной первой буквой. Внутренние слова начинаются с заглавных букв. Имена переменных не должны начинаться с символов подчеркивания _ или знаков доллара $, даже если оба разрешены.
Имена переменных, объявленных константами класса и констант ANSI, должны быть прописными буквами со словами, разделенными символами подчеркивания ( "_" ). (Для облегчения отладки следует избегать констант ANSI).
Ответ 2
Иногда люди используют символы подчеркивания, чтобы указать, что их переменная или метод являются закрытыми. Мне это не нравится. Я также предлагаю вам использовать camelCase.
Ответ 3
Обычно не следует использовать, кроме как разделитель во всех прописных константах, которые обычно являются окончательными (allStars, но ALL_STARS).
Именно потому, что обычно не ожидалось, подчеркивание в изобилии генерируется кодом. Он также может быть найден в каком-то более старом коде, это не причина продолжать его использование.
Ответ 4
Обычно _ используется в переменной, чтобы представлять их как частные переменные уровня класса.
Ответ 5
Цитирование книги "Чистый код" Роберта К. Мартина,
Иногда полезно предупредить других программистов о некоторых последствиях.
Пример
// Don't run unless you
// have some time to kill.
public void _testWithReallyBigFile() {
writeLinesToFile(10000000);
response.setBody(testFile);
response.readyToSend(this);
String responseString = output.toString(); assertSubString("Content-Length: 1000000000", responseString); assertTrue(bytesSent > 1000000000);
}
В настоящее время, конечно, wed отключает тестовый пример, используя атрибут @Ignore с соответствующей пояснительной строкой. @Ignore ( "Слишком много времени для запуска" ). Но еще во времена, предшествовавшие JUnit 4, подчеркивание перед именем метода было общим соглашением.