Вопросы форматирования являются самыми спорными, но наименее значимый. Люди могут адаптироваться к различным стилям форматирования, но лучше, если они не должны этого делать. И лучше, если меньше времени уделяется данной теме, если все придерживаются одного и того же стиля форматирования. Проблема в том, как подойти к этой теме без долгих предписывающих руководств по стилю форматирования.
С 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
означает, то что подразумевается пробелами, в отличие от других языков.
Читайте также:

Комментариев нет:
Отправить комментарий