缩小变量作用域

如果有可能,尽量缩小变量作用范围,除非这样与减少嵌套的规则冲突。

BadGood
  1. err := ioutil.WriteFile(name, data, 0644)
  2. if err != nil {
  3. return err
  4. }
  1. if err := ioutil.WriteFile(name, data, 0644); err != nil {
  2. return err
  3. }

如果需要在 if 之外使用函数调用的结果,则不应尝试缩小范围。

BadGood
  1. if data, err := ioutil.ReadFile(name); err == nil {
  2. err = cfg.Decode(data)
  3. if err != nil {
  4. return err
  5. }
  6. fmt.Println(cfg)
  7. return nil
  8. } else {
  9. return err
  10. }
  1. data, err := ioutil.ReadFile(name)
  2. if err != nil {
  3. return err
  4. }
  5. if err := cfg.Decode(data); err != nil {
  6. return err
  7. }
  8. fmt.Println(cfg)
  9. return nil