我是 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)) 方法?
2 回答

九州编程
TA贡献1785条经验 获得超4个赞
make([]byte, 0, capacity)返回一个新的字节 slice( []byte) 初始化为长度 0 和容量capacity。
换句话说,它可能会帮助您在多行上看到它:
capacity := 100 // or whatever
var myBytes []byte = make([]byte, 0, capacity)
buf := bytes.NewBuffer(myBytes)

拉莫斯之舞
TA贡献1820条经验 获得超10个赞
您错过了bytes.NewBuffer()
使用单个参数调用函数的事实,这恰好是一个方法调用make([]byte, 0, capacity)
- 它返回一个字节切片。
- 2 回答
- 0 关注
- 235 浏览
添加回答
举报
0/150
提交
取消