在 go lang bytes 包中找不到 NewBuffer([]bytes,int,int64)

我是 Go 语言的新手。我试图了解ioutil .ReadAll(r Reader, capacity int64) 方法内部发生了什么。在这个方法里面有这样一行:

buf := bytes.NewBuffer(make([]byte, 0, capacity))

问题是在 bytes 包内有一个 NewBuffer 方法,只有参数,如:

func NewBuffer(buf []byte) *Buffer

我一遍又一遍地搜索字节包文档,但找不到带有 3 个参数的 NewBuffer 方法。

那么实际上从哪里调用 NewBuffer(make([]byte, int, int64)) 方法?


大话西游666
浏览 236回答 2
2回答

九州编程

make([]byte, 0, capacity)返回一个新的字节 slice( []byte) 初始化为长度 0 和容量capacity。换句话说,它可能会帮助您在多行上看到它:capacity := 100 // or whatevervar myBytes []byte = make([]byte, 0, capacity)buf := bytes.NewBuffer(myBytes)

拉莫斯之舞

您错过了bytes.NewBuffer()使用单个参数调用函数的事实,这恰好是一个方法调用make([]byte, 0, capacity)- 它返回一个字节切片。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go