为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
大话西游666 2021-12-20 17:04:54
我是 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)


查看完整回答
反对 回复 2021-12-20
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

您错过了bytes.NewBuffer()使用单个参数调用函数的事实,这恰好是一个方法调用make([]byte, 0, capacity)- 它返回一个字节切片。


查看完整回答
反对 回复 2021-12-20
  • 2 回答
  • 0 关注
  • 235 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号