英文:
Idiomatically buffer os.Stdout
问题
os.Stdout.Write()
是一个无缓冲写入操作。要进行缓冲写入操作,可以使用以下代码:
f := bufio.NewWriter(os.Stdout)
f.Write(b)
问题:
有没有更符合惯用法的方法来实现缓冲输出?
英文:
os.Stdout.Write()
is an unbuffered write. To get a buffered write, one can use the following:
f := bufio.NewWriter(os.Stdout)
f.Write(b)
Question:
Is there a more idiomatic way to get buffered output?
答案1
得分: 61
不,这是将写入Stdout的数据进行缓冲的最常见的方式。在许多情况下,您还会想要添加一个defer:
f := bufio.NewWriter(os.Stdout)
defer f.Flush()
f.Write(b)
这将确保在从函数返回时刷新缓冲区。
英文:
No, that is the most idiomatic way to buffer writes to Stdout. In many cases, you will want to do also add a defer:
f := bufio.NewWriter(os.Stdout)
defer f.Flush()
f.Write(b)
This will ensure that the buffer is flushed when you return from the function.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论