面试题:考察 bufio 包中的 Buffered 和 Peek

polaris · · 2749 次点击
OctopusLian
熟能生巧,勤能补拙,念念不忘,必有回响。
## 1,两次调用 Buffered 输出分别是? ``` Output 0 5 ``` 输出0的原因: 根据 ```go func (b *Reader) Buffered() int { return b.w - b.r } // Reader implements buffering for an io.Reader object. type Reader struct { buf []byte rd io.Reader // reader provided by the client r, w int // buf read and write positions err error lastByte int // last byte read for UnreadByte; -1 means invalid lastRuneSize int // size of last rune read for UnreadRune; -1 means invalid } ``` ## 2,Peek 是干嘛用的? 返回`Reader`中读取字符串的n个字节。它不会自己移动位置。 `r.Len()`就是`Reader`读取的字符串长度 如果有错误,望指正,感谢!
#1