Go 您认为可以重用err变量吗?
例如,在这种情况下,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
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,这可能会解决问题。