这个是A Tour of Go这个教程里面的第七个练习,原题如下:
实现一个
Reader
类型,它产生一个 ASCII 字符'A'
的无限流。
原题代码模板如下:
package main
import (
"golang.org/x/tour/reader"
)
type MyReader struct{}
// TODO: 给 MyReader 添加一个 Read([]byte) (int, error) 方法
func main() {
reader.Validate(MyReader{})
}
这题其实就是要实现一个Read接口:
func (T) Read(b []byte) (n int, err error)
然后在这个接口里面一直返回b的长度,给b注入相应长度的A的ASCII码就好:
package main
import (
"golang.org/x/tour/reader"
)
type MyReader struct{}
// TODO: 给 MyReader 添加一个 Read([]byte) (int, error) 方法
func (r MyReader) Read(b []byte) (int, error) {
for i := range b {
b[i] = 'A'
}
return len(b), nil
}
func main() {
reader.Validate(MyReader{})
}