题目内容:
Implement a Reader type that emits an infinite stream of the ASCII character 'A'.
练习程序
- package main
-
- import "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方法的使用和实现原理。