我创建了一个切片结构。但是,为什么我不能追加或输出值?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)}错误消息为:“无效操作:切片结构[0](类型*切片结构不支持索引)”
1 回答
慕容森
TA贡献1853条经验 获得超18个赞
您需要在获取元素之前取消引用指针
(*slicestruct)[0]
因为它是您要从中访问元素的实际切片,而不是指针。对于指向数组的指针(不是此处的切片),此步骤将自动完成。
下面是有关指向切片和数组的指针的相关问题:指向切片和数组的指针
或者,可以删除 when 声明变量,使其不是指针类型。在我们在这里看到的简短示例中,没有什么需要指针。通常,指向切片类型的指针的合法使用很少见。&
- 1 回答
- 0 关注
- 67 浏览
添加回答
举报
0/150
提交
取消