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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

限制變量存儲錯誤的范圍

限制變量存儲錯誤的范圍

Go
嗶嗶one 2022-01-04 10:37:57
我有以下代碼:if entryJson, err := json.MarshalIndent(entry, "", " "); err != nil{    log.Println(err)} else {    log.Println(entryJson)}if err := ioutil.WriteFile("text.json", entryJson, 0644); err != nil {    log.Println(err)}我想盡可能地限制err的范圍。我面臨的問題是,entryJson當(dāng)我想將它寫入文件時,該變量超出了范圍。處理這個問題的慣用方法是什么。我應(yīng)該重用變量err并在附加的if塊中檢查它嗎?像這樣:entryJson, err := json.MarshalIndent(entry, "", " ")if err != nil{    log.Println(err)} else {    log.Println(entryJson)}err = ioutil.WriteFile("text.json", entryJson, 0644)if err != nil{    log.Println(err)}這有效,但對我來說看起來不太可讀。
查看完整描述

2 回答

?
HUH函數(shù)

TA貢獻1836條經(jīng)驗 獲得超4個贊

首先,不需要隔離變量。其次,您可以在 if 語句中進行簡寫賦值,例如:


entryJson, err := json.MarshalIndent(entry, "", " ")

if err != nil{

    log.Println(err)

} else {

    log.Println(entryJson)

}


if err = ioutil.WriteFile("text.json", entryJson, 0644); err != nil{

    log.Println(err)

}


// or if you want to limit the scope of err badly, this is also legal:


if err := ioutil.WriteFile("text.json", entryJson, 0644); err != nil{

    log.Println(err)

}

處理這個特定示例的一種干凈的方法是將它放在它自己的函數(shù)中并調(diào)用它:


func writeJSON(fn string, v interface{}) error {

    j, err := json.MarshalIndent(v, "", " ")

    if err != nil {

        return err

    }


    return ioutil.WriteFile(fn, j, 0644)

}


func main() {

    var test struct {

        A string

        B string

    }

    if err := writeJSON("file.json", test); err != nil {

        log.Fatal(err)

    }

}


查看完整回答
反對 回復(fù) 2022-01-04
?
臨摹微笑

TA貢獻1982條經(jīng)驗 獲得超2個贊

您可以else在錯誤檢查后的語句中寫入文件,盡管我不能說它是慣用的/可讀的。


var entry = []byte(`{

    "name": "bob",

    "age" : 74

}`)


func main() {

    if entryJson, err := json.MarshalIndent(entry, "", " "); err != nil {

        log.Fatal(err)

    } else {

        if err = ioutil.WriteFile("text.json", entryJson, 0644); err != nil {

            log.Fatal(err)

        }   

    }

}


查看完整回答
反對 回復(fù) 2022-01-04
  • 2 回答
  • 0 關(guān)注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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