Есть ли где-нибудь стандартный документ с соглашениями о кодировании в Google Go, в котором указывается, предпочтительны ли табуляции или пробелы для отступов в исходном коде Go?
Какая официальная рекомендация, если таковая имеется?
Есть ли где-нибудь стандартный документ с соглашениями о кодировании в Google Go, в котором указывается, предпочтительны ли табуляции или пробелы для отступов в исходном коде Go?
Какая официальная рекомендация, если таковая имеется?
Официальная рекомендация - отформатировать код с помощью
go fmt
или используя команду gofmt напрямую
gofmt -w .
Вы можете прочитать об этом здесь в блоге golang.org или в Документ Effective Go:
Отступ
Мы используем табуляцию для отступа, и gofmt выводит их по умолчанию. Используйте пробелы только в случае необходимости.
go fmt
в вашем коде перед его отправкой (обратите внимание, что там также gofmt
). Я пытаюсь доказать, что Go сделал это правильно не просто объявив политику, но приняв инструмент, который ее применяет. Это необычно, поэтому постарайтесь осознать эту идею и принять go fmt
. Обратите внимание, что существуют даже автоматизированные решения (например, официальный плагин Go для Vim поддерживает команду :Fmt
, IIRC).
- person kostix; 30.09.2013
tab-width
в своем go-mode-hook
.)
- person eold; 04.02.2016
ИЗМЕНИТЬ 2: исходный ответ внизу теперь неверен. Правильный раздел связанного исходного файла (текущий 30.12.2019) является:
Gofmt форматирует программы Go. Он использует табуляторы для отступов и пробелы для выравнивания. Выравнивание предполагает, что редактор использует шрифт фиксированной ширины.
Спасибо TehSphinX за указание на это!
ВСЯ ИНФОРМАЦИЯ ПОД ЭТОЙ СТРОКОЙ ТЕПЕРЬ НЕПРАВИЛЬНАЯ
ИЗМЕНИТЬ: исходный ответ внизу теперь неверен. Правильный раздел связанного исходного файла (текущий 25.07.2014):
Gofmt форматирует программы Go.
Он использует табуляторы (ширина = 8) для отступов и пробелы для выравнивания.
Исходный ответ (не рекомендуется):
Formatting control flags:
-comments=true
Print comments; if false, all comments are elided from the output.
-tabs=true
Indent with tabs; if false, spaces are used instead.
-tabwidth=8
Tab width in spaces.
-tabs
и -tabwidth
исчезли (а -comments
больше не документированы по крайней мере; внимательнее не смотрел)
- person William; 25.07.2014
gofmt
больше нет упоминания о ширине табуляции. Он был удален здесь: github.com/golang/go/commit/
- person TehSphinX; 11.12.2019