Maison >développement back-end >Golang >Ajouter des éléments à une tranche de structure
l'éditeur php Yuzi est là pour vous présenter une technique sympa : attacher des éléments aux tranches de structure. Struct slice est une structure de données utilisée dans Golang. Elle peut stocker différents types d'éléments et a la capacité de se développer dynamiquement. En ajoutant des éléments aux tranches de structure, nous pouvons facilement étendre et manipuler les collections de données, permettant une programmation plus flexible et plus efficace. Voyons comment utiliser cette technique pour améliorer nos compétences en programmation !
J'essaie d'ajouter un élément à une tranche d'une structure, mais cela renvoie l'erreur invalidappend, ce qui signifie que le premier argument que je passe n'est pas une tranche.
Lien pour aller au terrain de jeu.Le code est le suivant :
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) }Je ne sais pas comment effectuer correctement cette opération d'ajout. SolutionLe premier paramètre que j'ai transmis n'était pas une tranche
Le premier paramètre est un pointeur vers la tranche.
type itemslist []item func (il *itemslist) additem(i item) { il = append(il, i) }Le premier paramètre est une tranche.
func (il *ItemsList) AddItem(i Item) { *il = append(*il, i) }
https://www.php.cn/link/97fc9b260a90d9c0aca468d2e6536980
Spécification du langage de programmation go
Opérateur d'adressePour l'opérande x de type pointeur *t, l'adressage indirect du pointeur *x représente la variable de type t pointée par x.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!