Go指南—练习:rot13Reader
来源:互联网 发布:雉兔同笼c语言 编辑:程序博客网 时间:2024/05/18 20:49
有种常见的模式是一个 io.Reader 包装另一个 io.Reader ,然后通过某种方式修改其数据流。
package mainimport ( "io" "os" "strings")type rot13Reader struct { r io.Reader}func rot13(p byte) byte { switch { case p >= 'A' && p <= 'M': p += 13 case p >= 'N' && p <= 'Z': p -= 13 case p >= 'a' && p <= 'm': p += 13 case p >= 'n' && p <= 'z': p -= 13 } return p}func (m rot13Reader) Read(p []byte) (n int, err error) { ori := make([]byte, 50) i, err := m.r.Read(ori) //读取写入的 io.Reader for index, value := range ori[:i] { p[index] = rot13(value) //将写入的 io.Reader的值进行加密操作 } return i, err}func main() { s := strings.NewReader("abac!") r := rot13Reader{s} io.Copy(os.Stdout, &r) io.Copy(os.Stdout, s) //没有值可以读取}
阅读全文
0 0
- Go指南—练习:rot13Reader
- Go指南练习之《rot13Reader》
- Go指南中的练习:map
- Go指南中的练习:Stringers
- go语言指南的练习
- Go指南练习之《slice》
- Go指南练习之《map》
- Go指南练习之《Stringers》
- Go指南练习之《错误》
- Go指南练习之《斐波纳契闭包》
- Go指南练习之《Reader》
- Go指南练习之《图片》
- Go指南练习之《斐波纳契闭包》
- Go指南练习之《循环和函数》
- Go指南练习之《HTTP 处理》
- Go指南练习之《等价二叉树》
- Go指南练习之《Web 爬虫》
- go指南练习:循环和函数
- mysql性能优化之explain
- 【hdu 1068 Girls and Boys 最大独立集数 匈牙利算法 】
- 三极管原理与应用
- 好玩的css3动画
- 只如初见的C Language.
- Go指南—练习:rot13Reader
- HDU
- rabbit
- Android安全攻防战,反编译与混淆技术完全解析(下)
- 前端页面渲染
- C++变长数组
- [HDU 6142] Jedi Council
- 简易的省市二级联动
- Spring4自定义@Value功能