你认为你可以重用 err 变量吗?

jun*_*ent 2 go

比如这种情况下,err 变量很快就会当场完成它的作用,所以我认为没有必要定义多个名称。

package main

func main() {
    foo, errFoo := foo()
    if errFoo != nil {
        panic(errFoo)
    }

    bar, errBar := bar()
    if errBar != nil {
        panic(errFoo)
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我将代码更改如下。

package main

func main() {
    foo, err := foo()
    if err != nil {
        panic(err)
    }

    bar, err := bar()
    if err != nil {
        panic(err)
    }
}
Run Code Online (Sandbox Code Playgroud)

你们都遵守什么规矩?

Sau*_*ash 9

重用err变量非常常见,尤其是短变量声明格式。
大多数情况下,当你err在任何时候得到一个时,你会立即处理并返回/恐慌。

所以如果你有这样的代码:

func foo() error{
   a, err := f1()
   if err != nil{
     return err
   }

   //... do something with a

  //if we are here we know err is nil, so we can reuse it easily without any information getting lost
  b, err := f2()
  if err != nil{
    return err
  }
   //... do something with b

  return nil
}
Run Code Online (Sandbox Code Playgroud)

那么可以重用 err