减少嵌套
代码应该通过尽可能地先处理错误情况/特殊情况,并且及早返回或继续下一循环来减少嵌套。尽量减少嵌套于多个级别的代码数量。
Bad | Good |
---|
for , v := range data { if v.F1 == 1 { v = process(v) if err := v.Call(); err == nil { v.Send() } else { return err } } else { log.Printf("Invalid v: %v", v) } }
|
for , v := range data { if v.F1 != 1 { log.Printf("Invalid v: %v", v) continue }
v = process(v) if err := v.Call(); err != nil { return err } v.Send() }
|