http://tour.golang.org/methods/11的解决方案

时间:2015-01-08 11:32:40

标签: go

Exercise: Readers

实现一个读取器类型,该类型发出ASCII字符的无限流' A'。

我不明白这个问题,如何发出角色' A'?我应该在哪个变量中设置该字符?

这是我尝试的内容:

package main
import "code.google.com/p/go-tour/reader"
type MyReader struct{}
// TODO: Add a Read([]byte) (int, error) method to MyReader.
func (m MyReader) Read(b []byte) (i int, e error) {
    b = append(b,'A') // this is wrong..
    return 1, nil // this is also wrong..
}
func main() {
    reader.Validate(MyReader{}) // what did this function expect?
}

2 个答案:

答案 0 :(得分:29)

啊,我理解XD

我认为最好说:“将[]byte中的所有值重写为'A' s”

package main

import "code.google.com/p/go-tour/reader"

type MyReader struct{}

// TODO: Add a Read([]byte) (int, error) method to MyReader.
func (m MyReader) Read(b []byte) (i int, e error) {
    for x := range b {
        b[x] = 'A'
    }
    return len(b), nil
}

func main() {
    reader.Validate(MyReader{})
}

答案 1 :(得分:0)

即使没有拼写错误,所谓的答案也不适合我。 像我一样尝试,该字符串不会进入 b。

unsigned char