


So hängen Sie an ein Slice an, dessen Elementtyp kein benannter Typ in Golang ist
Der PHP-Editor Banana zeigt Ihnen, wie Sie an ein Slice anhängen, dessen Elementtyp kein benannter Typ in Golang ist. In Golang können wir die integrierte Append-Funktion verwenden, um Elemente an ein Slice anzuhängen. Wenn der Elementtyp des Slice jedoch kein benannter Typ, also ein anonymer Typ, ist, müssen wir zunächst ein temporäres Slice erstellen Hängen Sie die Elemente an den temporären Slice an und kopieren Sie schließlich die Elemente des temporären Slice zurück in den ursprünglichen Slice. Dadurch wird sichergestellt, dass die Daten des ursprünglichen Slice beim Anhängen von Elementen nicht verloren gehen. Als nächstes werden wir die spezifischen Schritte dieses Prozesses detailliert beschreiben.
Frageninhalt
Ich habe zwei Strukturen:
type responsequeryhotel struct { querystring *string `json:"querystring"` status string `json:"status"` action string `json:"action"` refcode string `json:"refcode"` vendorid string `json:"vendorid"` searchtoken *string `json:"searchtoken"` data struct { hotels []struct { data responsequeryhotelsdata `json:"data"` } `json:"hotels"` } `json:"data"` } type responsequeryhotelsdata struct { hotelidvendor string `json:"hotelidvendor"` hotelname string `json:"hotelname"` hoteladdress string `json:"hoteladdress"` hoteldistrict string `json:"hoteldistrict"` hotelcity string `json:"hotelcity"` hotelprovince string `json:"hotelprovince"` hotelcountry string `json:"hotelcountry"` hotellat string `json:"hotellat"` hotellng string `json:"hotellng"` hotelprice string `json:"hotelprice"` hoteldiscountprice string `json:"hoteldiscountprice"` hotelphotourl string `json:"hotelphotourl"` }
Jetzt muss ich Elemente an responsequeryhotel.data.hotels
anhängen, deren Elementtyp kein benannter Name ist. Also habe ich Folgendes versucht:
var output models.responsequeryhotel var data models.responsequeryhotelsdata output.data.hotels = append(output.data.hotels, data)
Aber ich bekomme diesen Fehler:
cannot use data (variable of type models.ResponseQueryHotelsData) as struct{Data models.ResponseQueryHotelsData "json:\"data\""} value in argument to append
Wie soll ich Elemente anhängen, um output.data.hotels
(将有超过 1 个 responsequeryhotelsdata
anzuhängen).
Übrigens kann ich die Struktur nicht ändern (sie liegt außerhalb meiner Kontrolle).
Problemumgehung
Wenn Sie es mehrmals verwenden müssen, definieren Sie einen Alias für denselben zugrunde liegenden Typ:
type hotel = struct { data responsequeryhotelsdata `json:"data"` } hotels := []hotel{ {data: responsequeryhotelsdata{}}, {data: responsequeryhotelsdata{}}, } output.data.hotels = append(output.data.hotels, hotels...)
Oder wenn Sie es nur einmal benötigen, deklarieren Sie den Strukturtyp an Ort und Stelle:
hotels := []struct { Data ResponseQueryHotelsData `json:"data"` }{ {Data: ResponseQueryHotelsData{}}, {Data: ResponseQueryHotelsData{}}, } output.Data.Hotels = append(output.Data.Hotels, hotels...)
Golang-Spezifikation heißt es: Ein Wert x vom Typ v ist einer Variablen vom Typ t zuweisbar („x ist t zuweisbar“), wenn eine der folgenden Bedingungen zutrifft:
v ist dasselbe wie t.
- v und t haben denselben zugrunde liegenden Typ, sind aber keine Typparameter, und mindestens einer von v oder t ist kein benannter Typ.
- v und t sind Kanaltypen mit demselben Elementtyp, v ist ein bidirektionaler Kanal und mindestens einer von v oder t ist kein benannter Typ.
- t ist ein Schnittstellentyp, aber kein Typparameter, und x implementiert t.
- x ist der vordeklarierte Bezeichner nil und t ist ein Zeiger-, Funktions-, Slice-, Map-, Kanal- oder Schnittstellentyp, aber kein Typparameter.
- x ist eine untypisierte Konstante, die durch einen Wert vom Typ t dargestellt werden kann.
Das obige ist der detaillierte Inhalt vonSo hängen Sie an ein Slice an, dessen Elementtyp kein benannter Typ in Golang ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Dieser Artikel erläutert die Paketimportmechanismen von Go: benannte Importe (z. B. importieren & quot; fmt & quot;) und leere Importe (z. B. Import _ & quot; fmt & quot;). Benannte Importe machen Paketinhalte zugänglich, während leere Importe nur T ausführen

In diesem Artikel werden die Newflash () -Funktion von BeEGO für die Übertragung zwischen PAGE in Webanwendungen erläutert. Es konzentriert sich auf die Verwendung von Newflash (), um temporäre Nachrichten (Erfolg, Fehler, Warnung) zwischen den Controllern anzuzeigen und den Sitzungsmechanismus zu nutzen. Limita

Dieser Artikel beschreibt die effiziente Konvertierung von MySQL -Abfrageergebnissen in GO -Strukturscheiben. Es wird unter Verwendung der SCAN -Methode von Datenbank/SQL zur optimalen Leistung hervorgehoben, wobei die manuelle Parsen vermieden wird. Best Practices für die Struktur -Feldzuordnung mithilfe von DB -Tags und Robus

Dieser Artikel zeigt, dass Mocks und Stubs in GO für Unit -Tests erstellen. Es betont die Verwendung von Schnittstellen, liefert Beispiele für Mock -Implementierungen und diskutiert Best Practices wie die Fokussierung von Mocks und die Verwendung von Assertion -Bibliotheken. Die Articl

In diesem Artikel werden die benutzerdefinierten Typ -Einschränkungen von GO für Generika untersucht. Es wird beschrieben, wie Schnittstellen die minimalen Typanforderungen für generische Funktionen definieren und die Sicherheitstypsicherheit und die Wiederverwendbarkeit von Code verbessern. Der Artikel erörtert auch Einschränkungen und Best Practices

Dieser Artikel beschreibt effizientes Dateischreiben in Go und vergleicht OS.WriteFile (geeignet für kleine Dateien) mit OS.openfile und gepufferter Schreibvorgänge (optimal für große Dateien). Es betont eine robuste Fehlerbehandlung, die Verwendung von Aufschub und Überprüfung auf bestimmte Fehler.

In dem Artikel werden Schreiben von Unit -Tests in GO erörtert, die Best Practices, Spottechniken und Tools für ein effizientes Testmanagement abdecken.

In diesem Artikel wird die Verwendung von Tracing -Tools zur Analyse von GO -Anwendungsausführungsfluss untersucht. Es werden manuelle und automatische Instrumentierungstechniken, den Vergleich von Tools wie Jaeger, Zipkin und Opentelemetrie erörtert und die effektive Datenvisualisierung hervorheben
