第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在 Err 上使用 Go goto 標(biāo)簽

在 Err 上使用 Go goto 標(biāo)簽

Go
慕運(yùn)維8079593 2022-08-09 20:20:11
我想使用標(biāo)簽來(lái)最小化錯(cuò)誤部分,如下所示:package mainimport (    "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)}所以我可以有一個(gè)地方把所有的錯(cuò)誤處理放在一個(gè)地方,但似乎不起作用./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)有沒(méi)有辦法使用goto來(lái)使它工作?
查看完整描述

1 回答

?
Smart貓小萌

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊

編譯器抱怨的原因在 Go 規(guī)范中定義:


執(zhí)行 “goto” 語(yǔ)句不得導(dǎo)致任何變量進(jìn)入在 goto 點(diǎn)時(shí)尚未在作用域內(nèi)的范圍。例如,此示例:


  goto L  // BAD  

  v := 3

L:

是錯(cuò)誤的,因?yàn)樘D(zhuǎn)到標(biāo)簽 L 會(huì)跳過(guò) v 的創(chuàng)建。


因此,您需要重構(gòu)代碼。如果你想繼續(xù)在這里使用(而不是,比如說(shuō),語(yǔ)句),那么你必須把所有聲明都向上移動(dòng)。gotoif-else


請(qǐng)注意,您可以像這樣拆分它:


   var v Type

   ...

L: ...

   v = FunctionThatReturnsType()

在這里應(yīng)該沒(méi)問(wèn)題。goto L


查看完整回答
反對(duì) 回復(fù) 2022-08-09
  • 1 回答
  • 0 關(guān)注
  • 153 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)