如何在 Golang 中的 strings.Builder 上实现 Read()

问题描述 投票:0回答:1

我有这个:

type StrangBuilda struct {
    strings.Builder
}

func (s StrangBuilda) Read(b []byte) (int, error) { 
    
}

因为 strings.Builder 没有实现 Read() 而我想

_, err := io.Copy(l.File, b)

因为当我经过

strings.Builder b
^^。它说:

无法像 Reader Type 那样使用“b”(类型 *strings.Builder) 未实现“Reader”,因为缺少某些方法:Read(p []byte) (n int,err 错误)

我们是否有机会获得 strings.Builder 的缓冲区,或者可能必须创建整个包装器?

go io buffer stdio strings-builder
1个回答
0
投票

看来您的方法使用了

strings.Builder
不正确。 不过,您有以下选择:

  1. 在使用 Builder 的内容之前先完成写入
    strings.NewReader()
  2. 将 Builder 替换为
    bytes.Buffer
    。它有不同的实现,但同时实现
    io.Reader
    io.Writer
    接口
© www.soinside.com 2019 - 2024. All rights reserved.