作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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/
https://github.com/golang/tour/blob/master/solutions/readers.go package main import "golang.org/x/to
我通过回显将 h 写入驱动程序:echo -n h/dev/mydriver 当我执行 cat/dev/mydriver 时,myread 函数会连续打印 h。我想打印一次。如何做到这一点。 stat
在将字符串 c 复制到 buf 之前,我需要将此用户空间缓冲区设置为零。如何将缓冲区初始化为零。 static ssize_t myread(struct file *file,char __user
我是一名优秀的程序员,十分优秀!