关于加解密函数和 io.ReadFull,io.Reader 的一些疑问

lmssky · · 783 次点击
jan-bar
想要拥有,必定付出。
```go package main import ( "fmt" "io" ) func main() { name := NewMyRand("123456789012") b := make([]byte, 100) n, err := io.ReadFull(name, b) if err != nil { panic(err) } fmt.Println(n, string(b)) } type MyRand struct { buf []byte pos, len int } func NewMyRand(s string) io.Reader { t := []byte(s) return &MyRand{buf: t, pos: 0, len: len(t)} } func (m *MyRand) Read(p []byte) (int, error) { if len(p) == 0 { return 0, nil } if m.pos >= m.len { m.pos = 0 } n := copy(p, m.buf[m.pos:]) m.pos += n return n, nil } ```
#1