gpt4 book ai didi

go - 从前面截断缓冲区

转载 作者:IT王子 更新时间:2023-10-29 02:06:13 27 4
gpt4 key购买 nike

bytes.Buffer 对象有一个 Truncate(n int) 方法来丢弃除前 n 字节之外的所有字节。

我需要与之完全相反的东西 - 保留 last n 字节。

我可以做以下事情

b := buf.Bytes()
buf.Reset()
buf.Write(b[offset:])

但我不确定这是否会有效地重新使用 slice 。

有更好的选择吗?

最佳答案

有两种选择:

  • 您提供的解决方案允许重复使用第一个“偏移”字节。
  • 创建一个 bytes.NewBuffer(b[offset:]) 并使用它。在您完成新缓冲区之前,这将不允许收集第一个“偏移”字节,但它避免了复制成本。

关于go - 从前面截断缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20455995/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com