代码应通过尽可能先处理错误情况/特殊情况并尽早返回或继续循环来减少嵌套。减少嵌套多个级别的代码的代码量。
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() } |