gpt4 book ai didi

io - Golang 中的 Reader 接口(interface)和 Read 方法

转载 作者:IT老高 更新时间:2023-10-28 13:09:27 25 4
gpt4 key购买 nike

我正在关注 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, e = r.r.Read(p)
for i:=range(p[:n]) {
p[i]=rot13(p[i])
}
return
}

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

关于io - Golang 中的 Reader 接口(interface)和 Read 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25526790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com