将元素附加到结构体切片
短信预约 -IT技能 免费直播动态提醒
php小编柚子在这里向大家介绍一种酷炫的技巧——将元素附加到结构体切片。结构体切片是一种在Golang中使用的数据结构,它可以存储不同类型的元素,并且具有动态扩展的能力。通过将元素附加到结构体切片,我们可以轻松地扩展和操作数据集合,实现更灵活和高效的编程。让我们一起来看看如何使用这个技巧来提升我们的编程能力吧!
问题内容
我正在尝试将元素附加到结构体的切片,但它返回错误invalidappend,这意味着我传递的第一个参数不是切片.
链接到 go playground。
代码如下:
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)
}
我不知道如何进行此附加操作的正确方法。
解决方法
我传递的第一个参数不是切片
第一个参数是指向切片的指针。
type itemslist []item
func (il *itemslist) additem(i item) {
il = append(il, i)
}
第一个参数是一个切片。
func (il *ItemsList) AddItem(i Item) {
*il = append(*il, i)
}
https://www.php.cn/link/97fc9b260a90d9c0aca468d2e6536980
go 编程语言规范
地址运算符
对于指针类型*t的操作数x,指针间接寻址*x表示x指向的类型t的变量。
以上就是将元素附加到结构体切片的详细内容,更多请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341