函数分组与排布顺序

  • 函数应该粗略的按照调用顺序来排布
  • 同一文件中的函数应该按照接收器的类型来分组排布 所以,公开的函数应排布在文件首,并在 struct、const 和 var 定义之后。

newXYZ()/ NewXYZ() 之类的函数应该排布在声明类型之后,具有接收器的其余方法之前。

因为函数是按接收器类别分组的,所以普通工具函数应排布在文件末尾。

BadGood
  1. func (s something) Cost() {
  2. return calcCost(s.weights)
  3. }
  4. type something struct{ }
  5. func calcCost(n int[]) int {…}
  6. func (s something) Stop() {…}
  7. func newSomething() something {
  8. return &something{}
  9. }
  1. type something struct{ }
  2. func newSomething() something {
  3. return &something{}
  4. }
  5. func (s something) Cost() {
  6. return calcCost(s.weights)
  7. }
  8. func (s something) Stop() {…}
  9. func calcCost(n int[]) int {…}