Maison  >  Article  >  développement back-end  >  Ajouter des éléments à une tranche de structure

Ajouter des éléments à une tranche de structure

王林
王林avant
2024-02-09 14:57:18779parcourir

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 !

Contenu de la question

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.

Solution

Le 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'adresse

Pour 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer