【问题标题】:What's the right way to clear a bytes.Buffer in golang?在 golang 中清除 bytes.Buffer 的正确方法是什么?
【发布时间】:2016-01-31 05:18:51
【问题描述】:

我正在尝试清除bytes.Buffer,但是文档中没有这个功能

也许我应该更新缓冲区?正确的做法是什么?

buffer   = bytes.NewBufferString("")
buffer.Grow (30000)

【问题讨论】:

    标签: go buffer


    【解决方案1】:

    Package bytes

    func (*Buffer) 重置

    func (b *Buffer) Reset()
    

    Reset 重置缓冲区,使其没有内容。 b.Reset() 与 b.截断(0)。

    func (*Buffer) 截断

    func (b *Buffer) Truncate(n int)
    

    截断从缓冲区中丢弃除前 n 个未读字节之外的所有字节。它 如果 n 为负数或大于缓冲区的长度,则发生恐慌。

    buffer.Reset()
    

    【讨论】:

    • @warl0ck 请记住,这实际上就像在执行b = b[:0],它实际上并没有“释放”内部缓冲区。
    • @OneOfOne,那么如何真正清除底层数组?
    • 清除还是免费? @DmytroTitov
    • “免费”,我猜。
    • 如何释放缓冲区的内存?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 2012-05-18
    • 2018-03-26
    • 2012-04-15
    • 2012-11-29
    • 2014-03-17
    相关资源
    最近更新 更多