io – 读取器界面和读取方法在golang

前端之家收集整理的这篇文章主要介绍了io – 读取器界面和读取方法在golang前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在跟随戈兰旅游,我被要求:

Implement a rot13Reader that implements io.Reader and reads from an io.Reader,modifying the stream by applying the ROT13 substitution cipher to all alphabetical characters.

我首先实现了这个方法到* rot13Reader

type rot13Reader struct {
    r io.Reader
}

func (r *rot13Reader) Read(p []byte) (n int,e error){


}

但是,我不知道这个Read方法.

p包含读取的所有字节吗?所以我应该做的是迭代它们并应用ROT13替代?

我知道它应该返回读取的字节数和文件末尾的EOF错误,但是我不知道这个方法调用的时间和方式.所以回到我原来的问题,p包含所有的数据?如果不是,那我该怎么办呢?

你应该扫描和“rot13”只有n个字节(由rot13Reader中的io.Reader读取的字节).
func (r *rot13Reader) Read(p []byte) (n int,e error){
    n,err = r.r.Read(p)
    for i:=range(p[:n]) {
       p[i]=rot13(p[i])
    }
    return
}

rot13Reader封装任何读写器,并在所述封装的Reader上调用Read.它返回rot13的内容,读取的字节数.

猜你在找的Go相关文章