Maison > développement back-end > Golang > le corps du texte

Ajouter des éléments à une tranche de structure

王林
Libérer: 2024-02-09 14:57:18
avant
803 Les gens l'ont consulté

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)
}
Copier après la connexion

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)
}
Copier après la connexion

Le premier paramètre est une tranche.

func (il *ItemsList) AddItem(i Item) {
    *il = append(*il, i)
}
Copier après la connexion

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!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!