有一个去旅游。我已经解决https://tour.golang.org/methods/23这样的:解决第23个巡回任务有什么问题?
func (old_reader rot13Reader) Read(b []byte) (int, error) {
const LEN int = 1024
tmp_bytes := make([]byte, LEN)
old_len, err := old_reader.r.Read(tmp_bytes)
if err == nil {
tmp_bytes = tmp_bytes[:old_len]
rot13(tmp_bytes)
return len(tmp_bytes), nil
} else {
return 0, err
}
}
func main() {
s := strings.NewReader("Lbh penpxrq gur pbqr!")
r := rot13Reader{s}
io.Copy(os.Stdout, &r)
}
哪里rot13
是正确的,回报显示正确的字符串调试输出权之前。但为什么没有输出到控制台?
谢谢!输出参数是邪恶的:( – devmeow
)如果你不把它作为参数传递,使用预先分配的读取缓冲区是很难的 – JimB
这段代码不是很正确(尽管它可以用于' '''''''''''''''''''''''''''''''' ; rot13(b [:n]); return n,err'更准确 –