Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 您认为可以重用err变量吗?_Go - Fatal编程技术网

Go 您认为可以重用err变量吗?

Go 您认为可以重用err变量吗?,go,Go,例如,在这种情况下,err变量将很快完成其角色,因此我认为没有必要定义多个名称 package main func main() { foo, errFoo := foo() if errFoo != nil { panic(errFoo) } bar, errBar := bar() if errBar != nil { panic(errFoo) } } 所以我修改代码如下 package main fu

例如,在这种情况下,err变量将很快完成其角色,因此我认为没有必要定义多个名称

package main

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

    bar, errBar := bar()
    if errBar != nil {
        panic(errFoo)
    }
}
所以我修改代码如下

package main

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

    bar, err := bar()
    if err != nil {
        panic(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
}
那么重用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
}

那么重用err就很好了

如果你问是否可以这样做,答案是肯定的。如果你问应该做什么,答案是基于意见的,因此超出了范围。对于那些来到这里的人,在看到:=左侧没有新变量后,你不能重新声明:=err变量,但可以再次为其赋值。所以用bar,err=bar替换bar,err=bar,这可能会解决问题。如果你问是否可以这样做,答案是肯定的。如果你问应该做什么,答案是基于意见的,因此超出了范围。对于那些来到这里的人,在看到:=左侧没有新变量后,你不能重新声明:=err变量,但可以再次为其赋值。所以只需将bar,err:=bar替换为bar,err=bar,这可能会解决问题。