首页 > 编程语言 > 详细

Go语言练习 Rot13

时间:2019-11-03 01:10:40      阅读:93      评论:0      收藏:0      [点我收藏+]

Go语言练习 Rot13

地址:https://tour.go-zh.org/methods/23

package main

import (
    "io"
    "os"
    "strings"
)

type rot13Reader struct {
    r io.Reader
}

func rot13(x byte) byte{
    lower := x<='z'&&x>='a'
    upper := x<='Z'&&x>='A'
    if (!lower)&&(!upper){
        return x
    }
    x += 13
    if lower&&x>'z'{
        return x-26
    }
    if upper&&x>'Z'{
        return x-26
    }
    return x
}

func (rot *rot13Reader) Read(b []byte) (n int,e error){
    n,e = rot.r.Read(b)
    for i:=0;i<n;i++{
        b[i] = rot13(b[i])
    }
    return n,e
}

func main() {
    s := strings.NewReader("Lbh penpxrq gur pbqr!")
    r := rot13Reader{s}
    io.Copy(os.Stdout, &r)
}

Go语言练习 Rot13

原文:https://www.cnblogs.com/zhuowangy2k/p/11784654.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!