Heim  >  Artikel  >  Backend-Entwicklung  >  Elemente an ein Struktur-Slice anhängen

Elemente an ein Struktur-Slice anhängen

王林
王林nach vorne
2024-02-09 14:57:18777Durchsuche

Elemente an ein Struktur-Slice anhängen

php-Editor Yuzi ist hier, um Ihnen eine coole Technik vorzustellen – das Anbringen von Elementen an Strukturscheiben. Struct Slice ist eine in Golang verwendete Datenstruktur, die verschiedene Arten von Elementen speichern kann und dynamisch erweitert werden kann. Durch das Anhängen von Elementen an Struktur-Slices können wir Datensammlungen einfach erweitern und manipulieren und so eine flexiblere und effizientere Programmierung ermöglichen. Werfen wir einen Blick darauf, wie wir diese Technik nutzen können, um unsere Programmierkenntnisse zu verbessern!

Frageninhalt

Ich versuche, ein Element an ein Segment einer Struktur anzuhängen, aber es gibt den Fehler invalidappend zurück, was bedeutet, dass das erste Argument, das ich übergebe, kein Segment ist.

Link zum Spielplatz.

Der Code lautet wie folgt:

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)
}

Ich weiß nicht, wie dieser Anhängevorgang richtig durchgeführt wird.

Workaround

Der erste Parameter, den ich übergeben habe, war kein Slice

Der erste Parameter ist ein Zeiger auf das Slice.

type itemslist []item

func (il *itemslist) additem(i item) {
  il = append(il, i)
}

Der erste Parameter ist ein Slice.

func (il *ItemsList) AddItem(i Item) {
    *il = append(*il, i)
}

https://www.php.cn/link/97fc9b260a90d9c0aca468d2e6536980

go Programmiersprachenspezifikation

Adressbetreiber

Für den Operanden x vom Zeigertyp *t stellt die indirekte Zeigeradressierung *x die Variable vom Typ t dar, auf die x zeigt.

Das obige ist der detaillierte Inhalt vonElemente an ein Struktur-Slice anhängen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen