我正在尝试学习Golang,在这样做的同时,我写了下面的代码(更大的自学项目的一部分),并从陌生人那里进行了代码审查,其中一条评论是,“你可以直接将其编组到stdout,而不是编组到堆,然后转换为字符串,然后将其流式传输到stdout"
我已经浏览了编码/ json
包和io
的文档,但无法拼凑出所需的更改。
任何指示或帮助都会很棒。
// Marshal the struct with proper tab indent so it can be readable
b, err := json.MarshalIndent(res, "", " ")
if err != nil {
log.Fatal(errors.Wrap(err, "error marshaling response data"))
}
// Print the output to the stdout
fmt.Fprint(os.Stdout, string(b))
编辑
我刚刚在文档中找到了下面的代码示例:
var out bytes.Buffer
json.Indent(&out, b, "=", "\t")
out.WriteTo(os.Stdout)
但是,它再次写入堆,然后再写入 。不过,它确实删除了将其转换为字符串的一个步骤。stdout
HUX布斯
相关分类