关于Go指南Reader的练习

yang147896523 · · 1627 次点击
这个就是完整代码。除了import 包
#2
更多评论
这么说吧,b 是调用Read方法的人分配的,不需要你自己分配,Read本质是把调用者传进入的b进行填充,这里是都填充A。所以b本来就是调用Read之前就分配了的,在这里就是Validate函数里分配的,虽然我也没具体看。如果你自己重新分配了b,那么调用Read的人将读不到任何数据,也就导致reader.Validate失败。main调用read的过程很简单,就是分配一个b,长度1024,然后调用Read(b),检查b是否都是A。 ``` func (MyReader) Read(b []byte) (int,error) { for i := range b { b[i] = 'A' } return len(b),nil } ```
#3