例如在下面,Data不會改變main塊 -
import "fmt"
func main(){
Data := make([]byte,3)
Modify(Data)
fmt.Println(Data) //output is [0,0,0]
}
func Modify(data []byte){
data = []byte{1,2,3}
}
但是在讀取檔案并將位元組存盤到切片b時,讀取方法可以更改其中的位元組b-
如此處所寫
func (f *File) Read(b []byte) (n int, err error)
方法如何Read修改呼叫者的b?
uj5u.com熱心網友回復:
Read可以修改b,因為您傳遞了一個長度非零的切片。Read將位元組設定為b最大長度......它沒有設定bslice。您自己的函式Modify設定作為本地副本的切片。如果您按索引分配最多切片長度,Modify則也具有修改行為。
func Modify(data []byte) {
for i := 0; i < len(data); i {
data[i] = i
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/480235.html
標籤:去
