题目内容:
Implement a Reader
type that emits an infinite stream of the ASCII character 'A'
.
练习程序
package mainimport "golang.org/x/tour/reader"
import "fmt"type MyReader struct{}// TODO: Add a Read([]byte) (int, error) method to MyReader.
func (myReader MyReader) Read(a []byte) (int, error) {for key, _ := range a {a[key] = 'A'}return len(a), nil
}func main() {reader.Validate(MyReader{})a := make([]byte, 9)myReader := MyReader{}n, _ := myReader.Read(a)fmt.Printf("a[:n] = %q\n", a[:n])
}
运行结果:
OK!
a[:n] = "AAAAAAAAA"
学习笔记:该题目通过为结构体类型MyReader实现一个Read接口,从而可以读取字符并写入到传入的字节数组中,进一步理解Go中Read方法的使用和实现原理。