Как называется это соглашение для фигурных скобок?

Я немного озадачен количеством разработчиков, которых я вижу в методах и классах с фигурными фигурными скобками ниже имени класса или метода. Какое соглашение они следуют?

Sun четко заявляет, что правильная декларация будет следующей:

// this declaration follows sun conventions
class Sample extends Object {
 Sample(int i, int j) {
 ....
 }
}

Все больше и больше я вижу, что это объявлено как (даже в книгах):

// this declaration follows a convention I cant identify
class Sample extends Object 
{
 Sample(int i, int j) 
 {
 ....
 }
}

И я знаю, что конвенция - это просто конвенция, и, пока вы следуете за ней, все хорошо. Я просто ищу ответ на , какое соглашение следует за последним объявлением?

7 ответов

Это стандартное соглашение о стиле, называемое стилем ANSI. Он распространен и на других языках помимо Java.


Как вы говорите, вы видели его довольно много - разве это не делает его конвенцией по своему усмотрению, есть ли у вас один источник или имя для этого соглашения? Это так легко описать, я не думаю, что это требует определенной атрибуции. Wikipedia "стиль отступа" называет это Allman Style или ANSI, но, честно говоря, я использовал его в течение многих лет, никогда не узнавая это имя, и я не думаю, что зная, что имя изменит что-нибудь о том, как я код:)

В отличие от конвенций, таких как присвоение имен публичным типам и методам, расположение скобок не влияет на разработчиков, использующих скомпилированную версию вашего кода... так что это нормально (IMO) для разных проектов и компаний, чтобы иметь разные решения... также использовать пробелы или вкладки, количество пробелов для отступов и т.д. Я подозреваю, что вы видели больше вариантов крепления (и, вероятно, частных переменных), чем в других аспектах соглашения.


Смотрите: http://en.wikipedia.org/wiki/Indent_style

Сион определил его как стиль ANSI, Sun следует за K & R-стиль размещения фигурных скобок.

Tangent: теперь я знаю, что проклятый стиль называется Стиль Whitesmiths


Я предпочитаю второе соглашение, потому что закрывающая скобка будет находиться ниже открытой, поэтому ее легче найти.


Последний выглядит как стиль отступа Allman, который довольно популярен в С++, но я не видел его часто используемого в Java.


Первое соглашение экономит драгоценное пространство. Согласие на скобки выполняется редактором в любом случае.


Второе соглашение также является стандартным стилем отступа Visual Studio (и, следовательно, довольно распространенным) для С#

licensed under cc by-sa 3.0 with attribution.