首页 > 后端开发 > Golang > 正文

将元素附加到结构体切片

王林
发布: 2024-02-09 14:57:18
转载
803 人浏览过

将元素附加到结构体切片

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的变量。

以上是将元素附加到结构体切片的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:stackoverflow.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!