- Функции следует отсортировать в приблизительном порядке вызова.
- Функции в файле должны быть сгруппированы по получателям.
Следовательно, экспортируемые функции должны появляться в файле первыми, после определений struct, const, var.
newXYZ()/NewXYZ() может появиться после определения типа, но перед остальными методами на приемнике.
Поскольку функции сгруппированы по получателям, простые служебные функции должны появиться ближе к концу файла.
Менее удачный пример:
func (s *something) Cost() {
return calcCost(s.weights)
}
type something struct{ ... }
func calcCost(n []int) int {...}
func (s *something) Stop() {...}
func newSomething() *something {
return &something{}
}
Более удачный пример:
type something struct{ ... }
func newSomething() *something {
return &something{}
}
func (s *something) Cost() {
return calcCost(s.weights)
}
func (s *something) Stop() {...}
func calcCost(n []int) int {...}
Читайте также:
- Go style guides: имена пакетов, импорт
- Go style guides: избегайте встраивания типов в общедоступные структуры
- Go style guides: последовательность, группировка объявлений
Комментариев нет:
Отправить комментарий