慕尼黑8549860
2021-04-06 21:18:57
以下代碼段錯誤-應(yīng)該如何措辭?package mainfunc main() { var a *[]int *a = make([]int, 0) *a = append(*a, 1)}
1 回答

侃侃無極
TA貢獻(xiàn)2051條經(jīng)驗 獲得超10個贊
使您的指針示例正常工作
聲明后,您的指針變量將為,nil,因此您無法設(shè)置指向的值(它尚未指向任何位置)。
您必須首先為指向的值分配內(nèi)存,例如,使用內(nèi)置new()函數(shù):
var a *[]int
a = new([]int)
*a = make([]int, 0)
*a = append(*a, 1)
另一種選擇是使用切片復(fù)合文字,并獲取其地址:
var a *[]int
a = &[]int{}
*a = make([]int, 0)
*a = append(*a, 1)
另一種選擇是使用切片類型的另一個變量[]int,并將其地址分配給a:
var a *[]int
var b []int
a = &b
*a = make([]int, 0)
*a = append(*a, 1)
放棄指針
但是要知道,使用切片不需要指針。您可以只將返回值分配給make()非指針切片變量:
var a []int
a = make([]int, 0)
a = append(a, 1)
添加回答
舉報
0/150
提交
取消