Код, о котором идет речь, не приводит к опубликованной ошибке, для доказательства проверьте ее на Go Playground .
Эта ошибка обычно есть (и операция подтвердила, что она слишкомв этом случае) вызвано наличием локальной переменной с тем же именем вне блока, и при использовании краткого объявления переменной эта тень скрывается.
Эта ошибка может быть воспроизведена с помощью следующейкод:
var result []byte
customers := []int{}
w := os.Stdout
for _, element := range customers {
result, _ := json.Marshal(element)
fmt.Fprintf(w, string(result))
}
При попытке скомпилировать и запустить его мы получаем ошибку (попробуйте на Go Playground ):
prog.go:10:6: result declared and not used
Решение заключается в использованиипростое присваивание вместо краткого объявления переменной, если намерение состоит в том, чтобы использовать существующую переменную (в этом случае новая переменная не будет создана), или использовать другое имя для переменной, если намерение не заключается в использованиивнешняя, существующая переменная (но тогда внешняя переменная должна быть удалена или, конечно, использоваться).