为了账号安全,请及时绑定邮箱和手机立即绑定

bytes.Reader,替换底层 []byte 数组

bytes.Reader,替换底层 []byte 数组

Go
慕姐8265434 2021-09-10 15:15:50
我一直在寻找一种很好的方法来传递 Reader 接口{},而无需重新创建与 io.Reader 关联的方法。{}这是我正在使用的:type EZReader struct {    data *bytes.Reader}func (self *EZReader) Replace(input []byte) {    self.data = bytes.NewReader(input)}func (self *EZReader) Read(p []byte) (n int, err error) {    return self.data.Read(p)}感觉,不对,有没有更好的方法来做到这一点?这个想法是我可以然后将这个 io.Reader 交给一个函数并将底层数组更改为我需要它而不必重新分配想要使用它的对象,在这种情况下是 json 解码器。
查看完整描述

1 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

如果您在结构中嵌入一个字段,则该字段的所有方法也可以在该结构上调用。所以如果你写


type EZReader struct {

    *bytes.Reader

}

您不必重新实现Read(). 这样一个字段的行为就像它被命名为Reader。请注意,您无法避免以这种方式公开字段。


查看完整回答
反对 回复 2021-09-10
  • 1 回答
  • 0 关注
  • 243 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信