我一直在寻找一种很好的方法来传递 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。请注意,您无法避免以这种方式公开字段。
- 1 回答
- 0 关注
- 243 浏览
添加回答
举报
0/150
提交
取消