Вопросы форматирования являются самыми спорными, но наименее значимый. Люди могут адаптироваться к различным стилям форматирования, но лучше, если они не должны этого делать. И лучше, если меньше времени уделяется данной теме, если все придерживаются одного и того же стиля форматирования. Проблема в том, как подойти к этой теме без долгих предписывающих руководств по стилю форматирования.
С Go мы используем необычный подход и даем машине заботиться о большинстве вопросов форматирования. Программа gofmt
(также доступно как go fmt
, работающее на уровне пакета, а не на уровне исходного файла) читает Go программу и выдает исходный код в стандартном стиле отступов и вертикального выравнивания, при этом сохраняет и при необходимости переформатирует комментарии. Если вы хотите знать, как работать с какой-либо новой шаблонной ситуацией, запустите gofmt
; если ответ не кажется правильным, переставьте блоки в вашей программе (или сообщите об ошибке gofmt
), и больше не тратьте на это время.
Так, например, нет необходимости тратить время на выравнивание комментариев к полям структуры. Gofmt
сделает это за вас. Например, дана декларация:
type T struct {
name string // имя объекта
value int // его значение
}
gofmt
выстроит столбцы в ряд:
type T struct {
name string // имя объекта
value int // его значение
}
Весь Go код в стандартных пакетах был отформатирован с помощью gofmt
.
Остались некоторые детали форматирования. Очень кратко:
- Отступ (Indentation). Для отступов используются табы, а
gofmt
выводит их по умолчанию. Используйте пробелы, только если это крайне необходимо. - Длина строки. Go не имеет ограничения по длине строки. Не беспокойтесь о переполнении перфокарты. Если строка кажется слишком длинной, оберните ее и сделайте отступ с дополнительным табом.
Скобки. Go требует меньше скобок, чем C и Java: управляющие структуры (
if
,for
,switch
) не содержат скобок в их синтаксисе. Кроме того, иерархия приоритетов операторов короче и понятнее, поэтомуx<<8 + y<<16
означает, то что подразумевается пробелами, в отличие от других языков.
Читайте также:
Комментариев нет:
Отправить комментарий