2 回答

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)
}
}

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)
}
}
}
- 2 回答
- 0 關(guān)注
- 171 瀏覽
添加回答
舉報