这个是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{})
}

Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.