我是 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 關注
- 233 瀏覽
添加回答
舉報
0/150
提交
取消