Exercise: Readers
题目内容:
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方法的使用和实现原理。