一种常见模式是使用一个 io.Reader,它包装另一个 io.Reader,并以某种方式修改数据流。
io.Reader
例如,gzip.NewReader 函数接收一个 io.Reader(压缩数据流),并返回一个 *gzip.Reader,它同样实现了 io.Reader(解压后的数据流)。
*gzip.Reader
实现一个 rot13Reader,使其实现 io.Reader 并从一个 io.Reader 中读取数据,通过对所有字母字符应用 rot13 替换密码来修改数据流。
rot13Reader
rot13Reader 类型已经为你提供。 让它成为一个 io.Reader:实现它的 Read 方法。
Read