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

задняя часть Go Командная строка Язык программирования
Форматирование кода с помощью gofmt

Для языка программирования форматирование кода является наиболее спорным вопросом.Разные разработчики могут иметь разные стили и привычки кодирования, но если все разработчики могут использовать один и тот же формат для написания кода, читатели, занимающиеся разработкой, смогут посвятить свое драгоценное время проблеме, которую решает язык. пытаясь решить.

Введение в гофмт

Команда разработчиков 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 выполнит форматирование кода.

Справочная статья

golang.org/cmd/gofmt/

golang.org/doc/эффект я…

открытый дом.Цао Цао/сплетни/го/…

GitHub.com/hyper0small/go_…

Нажмите, чтобы обратить внимание, чтобы узнать столбецСобственная кухня Голанг