提问人:LTX 提问时间:12/26/2022 更新时间:12/26/2022 访问量:78
将元素附加到结构 [duplicate] 的切片
Go appending elements to slice of struct [duplicate]
问:
这个问题在这里已经有答案了:
在指针接收器的方法中内置函数“追加” (2 个答案)
可以向切片添加追加方法 (1 个答案)
Go 指针 - 通过指针追加值以切片 (3 个答案)
如何追加到切片指针接收器 (1 个答案)
如何使用 * 指针将数据附加到数组结构(2 个答案)
11个月前关闭。
我正在尝试将元素附加到结构的切片,但它返回错误invalidAppend,这意味着我传递的第一个参数不是切片。
代码如下:
type Item struct {
Attr string
}
type ItemsList []Item
type IItemsList interface {
GetItemsList() ItemsList
AddItem(Item)
}
func NewItemsList() IItemsList {
return &ItemsList{}
}
func (il *ItemsList) GetItemsList() ItemsList {
return *il
}
func (il *ItemsList) AddItem(i Item) {
il = append(il, i)
}
我不知道如何进行此附加的正确方法。
答:
1赞
rocka2q
12/26/2022
#1
我通过的第一个论点不是切片
第一个参数是指向切片的指针。
type ItemsList []Item
func (il *ItemsList) AddItem(i Item) {
il = append(il, i)
}
第一个参数是切片。
func (il *ItemsList) AddItem(i Item) {
*il = append(*il, i)
}
https://go.dev/play/p/Se2ZWcucQOp
地址运算符
对于指针类型为 *T 的操作数 x,指针间接 *x 表示 x 指向的类型 T 的变量。
评论