Для языка программирования форматирование кода является наиболее спорным вопросом.Разные разработчики могут иметь разные стили и привычки кодирования, но если все разработчики могут использовать один и тот же формат для написания кода, читатели, занимающиеся разработкой, смогут посвятить свое драгоценное время проблеме, которую решает язык. пытаясь решить.
Введение в гофмт
Команда разработчиков Golang сформулировала единый официальный стиль кода и запустила инструмент gofmt (gofmt или go fmt), чтобы помочь разработчикам форматировать свой код в едином стиле. gofmt — это программа cli, которая сначала считывает стандартный ввод. Если передан путь к файлу, он отформатирует файл. Если передан каталог, он отформатирует все файлы .go в каталоге. Если параметры не переданы, он отформатирует все файлы .go в текущем каталоге.
gofmt не упрощает код по умолчанию. Используйте параметр -s, чтобы включить функцию упрощенного кода. В частности, будут выполнены следующие преобразования:
- Удалите ненужные объявления типов при инициализации массивов, срезов и карт:
如下形式的切片表达式:
[]T{T{}, T{}}
将被简化为:
[]T{{}, {}}
- Удалите ненужную спецификацию индекса во время операции нарезки массива.
如下形式的切片表达式:
s[a:len(s)]
将被简化为:
s[a:]
- Удалите ненужные назначения переменных во время итерации
如下形式的迭代:
for x, _ = range v {...}
将被简化为:
for x = range v {...}
如下形式的迭代:
for _ = range v {...}
将被简化为:
for range v {...}
Список параметров команды gofmt выглядит следующим образом:
usage: gofmt [flags] [path ...]
-cpuprofile string
write cpu profile to this file
-d display diffs instead of rewriting files
-e report all errors (not just the first 10 on different lines)
-l list files whose formatting differs from gofmt's
-r string
rewrite rule (e.g., 'a[b:len(a)] -> a[b:]')
-s simplify code
-w write result to (source) file instead of stdout
Видно, что команда gofmt также поддерживает пользовательские правила перезаписи.Используйте параметр -r для импорта правил в формате шаблон -> замена.
Программа Golang со следующим содержимым хранится в файле main.go.
package main
import "fmt"
func main() {
a := 1
b := 2
c := a + b
fmt.Println(c)
}
Используйте следующие правила для форматирования приведенного выше кода.
gofmt -r "a + b -> b + a"
Отформатированный результат выглядит следующим образом.
package main
import "fmt"
func main() {
a := 1
b := 2
c := b + a
fmt.Println(c)
}
*Примечание: Gofmt использует табуляцию для обозначения отступа, а ширина строки не ограничена.Если вы вручную переносите код, gofmt не будет принудительно форматировать код обратно в одну строку.
иди фмт и гфмт
gofmt — это независимая программа cli, а также в go есть команда go fmt, которая представляет собой простую инкапсуляцию gofmt.
usage: go fmt [-n] [-x] [packages]
Fmt runs the command 'gofmt -l -w' on the packages named
by the import paths. It prints the names of the files that are modified.
For more about gofmt, see 'go doc cmd/gofmt'.
For more about specifying packages, see 'go help packages'.
The -n flag prints commands that would be executed.
The -x flag prints commands as they are executed.
To run gofmt with specific options, run gofmt itself.
See also: go fix, go vet.
Сама команда go fmt имеет только два необязательных параметра -n и -x. -n только выводит команду go fmt для внутреннего выполнения. Команда -x выводит команду go fmt и выполняет ее. Если вам нужна более подробная конфигурации вам нужно выполнить команду gofmt напрямую.
go fmt добавляет параметры -l -w при вызове gofmt, что эквивалентно выполнениюgofmt -l -w
.
Настроить gofmt в goland
Goland – это интегрированная среда разработки для языка Go, запущенная JetBrains. Это мощный и простой в использовании продукт.
В Goland вы можете вызывать gofmt для форматирования кода при изменении файла, добавляя Наблюдатель за файлами.Конкретный метод заключается в том, чтобы щелкнуть «Настройки» -> «Инструменты» -> «Обозреватели файлов», щелкнуть знак «плюс», чтобы добавить шаблон go fmt, который предустановлен в Goland.Шаблон go fmt по умолчанию использует команду go fmt, замените ее на gofmt, а затем добавьте к параметрам параметры -l -w -s, чтобы включить функцию упрощения кода. После добавления конфигурации при сохранении исходного кода goland выполнит форматирование кода.
Справочная статья
открытый дом.Цао Цао/сплетни/го/…