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

调用 reader.Validate(MyReader{}) 如何调用我的自定义 Read 方法?

调用 reader.Validate(MyReader{}) 如何调用我的自定义 Read 方法?

Go
芜湖不芜 2022-04-26 10:55:34
https://github.com/golang/tour/blob/master/solutions/readers.gopackage mainimport "golang.org/x/tour/reader"type MyReader struct{}func (r MyReader) Read(b []byte) (int, error) { . //Q1) How is this method getting called?//Q2) Its no where called in this source code//Q3) What is the length of b ?    for i := range b { //Q4) Why isn't throwing an infinite loop ?        b[i] = 'A'     }    return len(b), nil}func main() {    reader.Validate(MyReader{})}
查看完整描述

1 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

它调用 Read(b []byte) 在这里查看源代码https://github.com/golang/tour/blob/master/reader/validate.go#L17

Validate(io.Reader) 需要一个 io.Reader,它只需要一个 Read([]byte) 函数来填充接口。这就是您正在做的事情,因此 Validate 可以调用您的读者。


查看完整回答
反对 回复 2022-04-26
  • 1 回答
  • 0 关注
  • 252 浏览
慕课专栏
更多

添加回答

举报

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