io/ioutil源码下, 有一个方法是readAll(); 其中共有一段代码
if int64(int(capacity)) == capacity {
buf.Grow(int(capacity))
}
想知道不相等的情况下, 是什么时候喃?
谢谢有知道的大佬, 刹一脚, 解答一下.
以下是接口所有代码:
func readAll(r io.Reader, capacity int64) (b []byte, err error) {
var buf bytes.Buffer
// If the buffer overflows, we will get bytes.ErrTooLarge.
// Return that as an error. Any other panic remains.
defer func() {
e := recover()
if e == nil {
return
}
if panicErr, ok := e.(error); ok && panicErr == bytes.ErrTooLarge {
err = panicErr
} else {
panic(e)
}
}()
if int64(int(capacity)) == capacity {
buf.Grow(int(capacity))
}
_, err = buf.ReadFrom(r)
return buf.Bytes(), err
}
有疑问加站长微信联系(非本文作者)