gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 21:11:57 26 4
gpt4 key购买 nike

https://github.com/golang/tour/blob/master/solutions/readers.go

package main

import "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{})
}

最佳答案

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

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

关于arrays - 调用 reader.Validate(MyReader{}) 如何调用我的自定义 Read 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59348682/

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