在Err上使用Go goto标签

沉思琪

我想使用标签来最小化这样的错误部分:

package main
import (
    "fmt"
    consul "github.com/hashicorp/consul/api"
    "os"
)
func main(){
    client,err := consul.NewClient(consul.DefaultConfig())
    if err != nil {
        goto Err
    }
    agent := client.Agent()
    checkReg := agent.AgentCheckRegistration{
        ID:   "test-check",
        Name: "test-check",
        Notes: "some test check",
    }
    if err = agent.CheckRegister(checkReg); err !=nil{
        goto Err
    }
Err:
    fmt.Println(err)
    os.Exit(2)
}

所以我可以有一个地方把所有的错误处理都放在一个地方,但似乎不工作

./agent.CheckRegister.go:10:8: goto Err jumps over declaration of checkReg at 
./agent.CheckRegister.go:13:19: agent.AgentCheckRegistration undefined (type *api.Agent has no field or method AgentCheckRegistration)

有没有一种使用goto使其工作的方法?

伊丽·班德斯基

Go规范中定义了编译器抱怨的原因

执行“ goto”语句一定不能使任何变量在goto时尚未进入作用域。例如,此示例:

  goto L  // BAD  
  v := 3
L:

是错误的,因为跳转到标签L会跳过v的创建。

因此,您需要重组代码。如果要继续使用goto此处(而不是if-else声明),则必须将所有声明上移。

请注意,您可以像这样拆分它:

   var v Type
   ...
L: ...
   v = FunctionThatReturnsType()

goto L这里应该可以

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在SQL事务中的SQL中使用GOTO和标签

来自分类Dev

javascript goto标签如何在内部循环中使用

来自分类Dev

在 AWS Lambda 上,使用 puppeteer page.goto 对我来说失败了,net::ERR_INSUFFICIENT_RESOURCES

来自分类Dev

ADO Query将goto标签视为参数

来自分类Dev

批处理脚本:在 IF 语句上使用 GOTO

来自分类Dev

使用 goto 语句

来自分类Dev

如何在 drupal_goto 路径中包含哈希标签?

来自分类Dev

在函数php中使用goto

来自分类Dev

使用goto跳过变量声明?

来自分类Dev

如何正确使用goto语句

来自分类Dev

在delphi中使用“ GoTo”命令?

来自分类Dev

在CMD中使用GOTO的缺点

来自分类Dev

使用GoTo跳过代码(递归)

来自分类Dev

使用“goto”从 if 移动到 else

来自分类Dev

使用goto跳到内部或同级作用域

来自分类Dev

为什么不使用GOTO语句?

来自分类Dev

如何正确使用IF和GOTO语句

来自分类Dev

更好的做法是:重复代码或使用goto语句?

来自分类Dev

如何使用goto代替for,while或switch

来自分类Dev

使用“ goto”停止C / freeRTOS中的任务

来自分类Dev

使用ASM重新排列GOTO [JAVA]

来自分类Dev

在“ goto”命令后使用什么代替“ pause”?

来自分类Dev

如何使用goto代替for,while或switch

来自分类Dev

批处理if语句后如何使用goto

来自分类Dev

这是使用goto的安全方法吗?

来自分类Dev

如何使用 IfError GoTo Next 函数

来自分类Dev

如何使用 goto 翻译 if .. else 语句?

来自分类Dev

在字典上使用标签编码器

来自分类Dev

在字典上使用标签编码器