Отступ в Go: вкладки или пробелы?

Существует ли где-нибудь стандартный документ соглашений о кодировании Google Go, в котором указывается, являются ли табуляции или пробелы предпочтительными для отступа в исходном коде Go? Если нет, то какой (статистически) более популярный вариант?

  1. Какова официальная рекомендация? (если есть)
  2. Какой выбор более популярен?

Ответ 1

Официальная рекомендация - форматирование вашего кода с помощью

go fmt

или непосредственно с помощью команды gofmt

gofmt -w .

Вы можете прочитать об этом здесь в блоге golang.org или из Эффективный переход:

Отступ
 Мы используем вкладки для отступов, а gofmt испускает их по умолчанию. Используйте пробелы только в том случае, если вы должны.

Ответ 2

В соответствии с http://golang.org/src/cmd/gofmt/doc.go значения по умолчанию:

ИЗМЕНИТЬ: исходный ответ внизу теперь неверен. Правильный раздел связанного исходного файла (текущий 25/07/2014):

Форматы Gofmt Go программы.
Он использует вкладки (width = 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.