减少嵌套

代码应该通过尽可能地先处理错误情况/特殊情况,并且及早返回或继续下一循环来减少嵌套。尽量减少嵌套于多个级别的代码数量。

BadGood
  1. for , v := range data {
  2. if v.F1 == 1 {
  3. v = process(v)
  4. if err := v.Call(); err == nil {
  5. v.Send()
  6. } else {
  7. return err
  8. }
  9. } else {
  10. log.Printf("Invalid v: %v", v)
  11. }
  12. }
  1. for , v := range data {
  2. if v.F1 != 1 {
  3. log.Printf("Invalid v: %v", v)
  4. continue
  5. }
  6. v = process(v)
  7. if err := v.Call(); err != nil {
  8. return err
  9. }
  10. v.Send()
  11. }