我創(chuàng)建了一個(gè)切片結(jié)構(gòu)。但是,為什么我不能追加或輸出值?package mainimport "fmt"type Slicestruct []struct { num []int emptynum []int}func main() { slicestruct := &Slicestruct{ {[]int{1, 2, 3}, []int{}}, {[]int{4, 5, 6}, []int{}}, } // is working: fmt.Println(slicestruct) // isn't working: fmt.Println(slicestruct[0].num[0]) // isn't working: slicestruct[0].emptynum = append(slicestruct[0].emptynum, 99)}錯(cuò)誤消息為:“無效操作:切片結(jié)構(gòu)[0](類型*切片結(jié)構(gòu)不支持索引)”
1 回答

慕容森
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊
您需要在獲取元素之前取消引用指針
(*slicestruct)[0]
因?yàn)樗悄獜闹性L問元素的實(shí)際切片,而不是指針。對于指向數(shù)組的指針(不是此處的切片),此步驟將自動(dòng)完成。
下面是有關(guān)指向切片和數(shù)組的指針的相關(guān)問題:指向切片和數(shù)組的指針
或者,可以刪除 when 聲明變量,使其不是指針類型。在我們在這里看到的簡短示例中,沒有什么需要指針。通常,指向切片類型的指針的合法使用很少見。&
- 1 回答
- 0 關(guān)注
- 83 瀏覽
添加回答
舉報(bào)
0/150
提交
取消