У меня есть следующий код:Ограничить объем переменных, хранящих ошибку
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
выходит за пределы области действия, когда я хочу записать ее в файл.
Что такое идиоматический способ справиться с этим. Должен ли я просто повторно использовать переменную err и проверить ее в дополнительном , если блок? Например:
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)
}
Это работает, но выглядит менее читаемым для меня.
1. Почему вы хотите его ограничить? какова ваша логика. 2. оба 'if err = ioutil.WriteFile (" text.json ", entryJson, 0644); err! = nil {} 'и' if err: = ioutil.WriteFile ("text.json", entryJson, 0644); err! = nil {} 'отлично работает – OneOfOne
У меня нет особых причин, ограничивающих область действия. Это просто показалось хорошей идеей, и меня вдохновил тот курс, который я взял. (Я довольно новичок в Go, исходя из фона Java.) – Chris