У меня есть вопрос об инструменте Go * gofmt , который автоматически форматирует вывод программ в соответствии с официальными спецификациями Go (например, вы не можете спорить о том, куда скобки должны идти в Go, потому что это очевидноисправлено спецификациями).
На следующей странице:
http://golang.org/doc/effective_go.html
в пункте «Форматирование» написано, что:
В качестве примера, нет необходимости тратить время на выстраивание комментариев к полям структуры.Gofmt сделает это за вас.Учитывая объявление
type T struct {
name string // name of the object
value int // its value
}
gofmt выстроит столбцы в столбцы:
type T struct {
name string // name of the object
value int // its value
}
Однако я не понимаю, как это могло бы хорошо сочетаться с diff и VCSes.
Например, если бы у меня была новая строка:
confuzzabler int // doo doo be doo
и запустить diff , я должен получить это:
2d1
< confuzzabler int // doo doo be doo
7d5
<
И жизнь была бы хорошей: разница показывает единственную измененную строку.
Однако, если я перезапущу gofmt , я получу это:
type T struct {
confuzzabler int // doo doo be doo
name string // name of the object
value int // its value
}
И теперь я перезапускаю diff и получаю это:
2,4c2,3
< confuzzabler int // doo doo be doo
< name string // name of the object
< value int // its value
---
> name string // name of the object
> value int // its value
7d5
<
Это очень запутанный и вводящий в заблуждение вывод diff , потому что только одна строкаизменилось.
Как вы справляетесь с этим как разработчик Go?