下面是示例代码:人员的定义
type Person struct {
Data string
done bool
}
实现写入
func (person *Person) Write(p []byte) (int,error) {
person.Data = string(p)
return len(p), nil
}
实现读取
func (person *Person) Read(p []byte) (int,error) {
if person.done {
return 0, io.EOF
}
for index, b := range []byte(person.Data) {
p[index] = b
}
// len(p) = 512 <- length p []byte
person.done = true
return len(person.Data), nil
}
写入一些数据
func writeTo(out io.Writer) error {
if _, err := out.Write([]byte("test")); err != nil {
return err
}
fmt.Println("Write done")
return nil
}
主要
func main() {
p := &Person{}
writeTo(p)
s, err := ioutil.ReadAll(p)
if err != nil {
panic(err)
}
fmt.Println("result:",string(s),len(s))
}
如所注意到的,p []字节长度为512。我想知道为什么它变成512长度。
繁花如伊
相关分类