Make vs New
用來初始化變數。
Make
buf := make([]byte, 16) // [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
buf := []byte{0, 1, 3} // [0 1 3]
以上兩種寫法都可以初始化,make 只能初始化 slice, map, channel。
New
new 可以初始化 struct 與其他型別,會自動用 zeroed value 來初始化型別,字串會是"",number 會是 0,channel, func, map, slice
等等則會是 nil
person := new([]byte)
new 會回傳指標,並且不用設定初始化大小
Last updated
Was this helpful?