Heim > Backend-Entwicklung > Golang > Wie ändere ich typbestätigte Schnittstellenabschnitte in Go?

Wie ändere ich typbestätigte Schnittstellenabschnitte in Go?

Mary-Kate Olsen
Freigeben: 2024-11-24 22:29:11
Original
203 Leute haben es durchsucht

How to Modify Type-Asserted Slices of Interfaces in Go?

Manipulation typbestätigter Slices von Schnittstellen in Go

In Golang ermöglicht die Typzusicherung Entwicklern den Zugriff auf den zugrunde liegenden konkreten Typ eines Schnittstellenwerts . Es ist jedoch wichtig zu beachten, dass die Typzusicherung den ursprünglichen Schnittstellenwert nicht ändert. Dies kann problematisch sein, wenn versucht wird, Elemente aus einem Typ-Asserted-Slice von Schnittstellen zu entfernen.

Betrachten Sie das folgende Beispiel:

value := []interface{}{0, "one", "two", 3, 4}
Nach dem Login kopieren

Wenn wir versuchen, ein Element mit dem aus dem Slice zu entfernen Typzusicherung:

i := 2
value.([]interface{}) = append(value.([]interface{})[:i],
   value.([]interface{})[i+1:]...)
Nach dem Login kopieren

Wir werden auf einen Fehler stoßen, der besagt: „Kann dem Wert nicht zugewiesen werden (Typ []Schnittstelle {})“. Dies liegt daran, dass durch die Typzusicherung eine Kopie des Originalwerts erstellt wird und an der Kopie vorgenommene Änderungen keinen Einfluss auf das Original haben.

Um dieses Problem zu beheben, ist es notwendig, einen zugrunde liegenden Abschnitt von Schnittstellen zu ändern, anstatt Typ- behauptete Kopien. Dies kann erreicht werden, indem das Slice in einen Schnittstellenzeiger eingeschlossen wird:

value := []*[]interface{}{&[]interface{}{0, "one", "two", 3, 4}}
Nach dem Login kopieren

Die Verwendung des Zeigers ermöglicht es uns, das zugrunde liegende Slice zu ändern:

sp := value[0]
i := 2
*sp = append((*sp)[:i], (*sp)[i+1:]...)
Nach dem Login kopieren

In diesem Fall die vorgenommenen Änderungen an Die spitzen Slices spiegeln sich im ursprünglichen Schnittstellenwert wider:

fmt.Println(value)
// Output: [*[]interface {0 one 3 4}]
Nach dem Login kopieren

Durch die Verwendung von Schnittstellenzeigern können Entwickler typbestätigte Slices von Schnittstellen manipulieren, ohne darauf zu stoßen Zuordnungsfehler.

Das obige ist der detaillierte Inhalt vonWie ändere ich typbestätigte Schnittstellenabschnitte in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage