Konvertieren Sie eine Golang-Karte in eine andere Kartenstruktur
PHP-Editor Apple stellt Ihnen vor, wie Sie eine Golang-Karte in eine andere Kartenstruktur konvertieren. Während des Entwicklungsprozesses müssen wir manchmal einige Konvertierungsvorgänge an der Originalkarte durchführen, um bestimmte Anforderungen zu erfüllen. Unabhängig davon, ob es sich um eine Datentypkonvertierung oder eine strukturelle Neuorganisation handelt, kann dies mit einigen einfachen Methoden erreicht werden. Dieser Artikel analysiert diesen Prozess für Sie im Detail, hilft Ihnen, diese Technik schnell zu beherrschen und die Entwicklungseffizienz zu verbessern. Lassen Sie uns gemeinsam diesen interessanten Konvertierungsprozess erkunden!
Frageninhalt
Ich benötige Hilfe beim Konvertieren dieser Eingabekarte in eine Ausgabekarte. Ich habe versucht, switch/case und for zu verwenden, ohne Erfolg. Vielen Dank!
Geben Sie ein:
values{ "toto_voiture_brand": ad{ "citroen": "citroen", }, "toto_voiture_model": ad{ "citroen_toto": "c3", }, "toto_moto_brand": ad{ "kawasaki": "kawasaki", }, "toto_moto_model": ad{ "kawasaki_tata": "ninja 1000 sx", }, "toto_camion_brand": ad{ "renault": "renault", "peugeot": "peugeot", }, "toto_camion_model": ad{ "renault_toto": "j5", "peugeot_tata": "255", }, }, }
Ausgabe
Values{ "toto_voiture_model": { "Citroen": { {Value: "C3"}, }, }, "toto_moto_model": { "Kawasaki": { {Value: "Ninja 1000 SX"}, }, }, "toto_camion_model": { "RENAULT": { {Value: "J5"}, }, "PEUGEOT": { {Value: "255"}, }, }, }
Ich habe versucht, Schaltergehäuse und Schleifen für und Karten zu verwenden. Aber ich habe nicht die Ergebnisteilnehmer und finde nicht, wie ich jede Karte, jeden Schlüssel und jeden Wert zuordnen kann. Vielen Dank
Workaround
Ich sollte den folgenden Code verwenden, um zu verwalten, was Sie brauchen:
package main import ( "encoding/json" "fmt" "strings" ) type Output struct { Value string `json:"Value"` } func main() { // declare output output := make(map[string]map[string]Output, 0) // input input := make(map[string]map[string]string, 0) input["toto_voiture_brand"] = map[string]string{ "CITROEN": "CITROEN", } input["toto_voiture_model"] = map[string]string{ "CITROEN_toto": "C3", } input["toto_moto_model"] = map[string]string{ "KAWASAKI_tata": "Ninja 1000 SX", } input["toto_camion_model"] = map[string]string{ "RENAULT_toto": "J5", "PEUGEOT_tata": "255", } // transformation for k, v := range input { if strings.HasSuffix(k, "_model") { tempMap := make(map[string]Output, len(v)) for kk, vv := range v { key := strings.Split(kk, "_")[0] tempMap[key] = Output{ Value: vv, } } output[k] = tempMap } } data, _ := json.MarshalIndent(&output, "", "\t") fmt.Println(string(data)) }
Ich habe dem Code einige Kommentare hinzugefügt, um die verschiedenen Teile zu trennen. Die ersten beiden Teile dienen lediglich der Definition von Ein- und Ausgabevariablen.
Nehmen Sie, was in // conversion
开头的部分是成为函数的良好候选者,但我更愿意将其保留在 main
函数中以用于演示目的。让我回顾一下 loop
passiert:
- Sie bestimmen den Eingabebereich der
input
Variablen - Wenn der Schlüssel das Suffix
_model
hat, wird es berücksichtigt - Sie definieren ein
tempmap
类型的本地范围映射[string]output, das die richtige Anzahl an Elementen enthält, die wir hinzufügen möchten - Sie bestimmen den Gültigkeitsbereich der
v
-Variablen (deshalb beschäftigen wir uns mit verschachtelten Zuordnungen) - Für jedes Projekt müssen Sie einen Eintrag zu
tempmap
hinzufügen
- Fügen Sie am Ende der verschachtelten Schleife einen Eintrag zur übergeordneten Karte hinzu (
output
)
Der letzte Teil gibt nur einen schönen JSON-Code aus, der leicht gelesen und überprüft werden kann.
Bitte beachten Sie, dass dieser Code nur vereinfacht ist, um zu zeigen, wie Sie Ihr Ziel erreichen. Bitte passen Sie ihn an, bevor Sie in die Produktion gehen.
Bitte sagen Sie mir, ob das hilft, danke!
Das obige ist der detaillierte Inhalt vonKonvertieren Sie eine Golang-Karte in eine andere Kartenstruktur. 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

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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



OpenSSL bietet als Open -Source -Bibliothek, die in der sicheren Kommunikation weit verbreitet sind, Verschlüsselungsalgorithmen, Tasten und Zertifikatverwaltungsfunktionen. In seiner historischen Version sind jedoch einige Sicherheitslücken bekannt, von denen einige äußerst schädlich sind. Dieser Artikel konzentriert sich auf gemeinsame Schwachstellen und Antwortmaßnahmen für OpenSSL in Debian -Systemen. DebianopensL Bekannte Schwachstellen: OpenSSL hat mehrere schwerwiegende Schwachstellen erlebt, wie z. Ein Angreifer kann diese Sicherheitsanfälligkeit für nicht autorisierte Lesen sensibler Informationen auf dem Server verwenden, einschließlich Verschlüsselungsschlüssel usw.

In der Bibliothek, die für den Betrieb der Schwimmpunktnummer in der GO-Sprache verwendet wird, wird die Genauigkeit sichergestellt, wie die Genauigkeit ...

Das Problem der Warteschlange Threading In Go Crawler Colly untersucht das Problem der Verwendung der Colly Crawler Library in Go -Sprache. Entwickler stoßen häufig auf Probleme mit Threads und Anfordern von Warteschlangen. � ...

In diesem Artikel werden eine Vielzahl von Methoden und Tools eingeführt, um PostgreSQL -Datenbanken im Debian -System zu überwachen, um die Datenbankleistung vollständig zu erfassen. 1. verwenden Sie PostgreSQL, um die Überwachungsansicht zu erstellen. PostgreSQL selbst bietet mehrere Ansichten für die Überwachung von Datenbankaktivitäten: PG_STAT_ACTIVITY: Zeigt Datenbankaktivitäten in Echtzeit an, einschließlich Verbindungen, Abfragen, Transaktionen und anderen Informationen. PG_STAT_REPLIKATION: Monitore Replikationsstatus, insbesondere für Stream -Replikationscluster. PG_STAT_DATABASE: Bietet Datenbankstatistiken wie Datenbankgröße, Transaktionsausschüsse/Rollback -Zeiten und andere Schlüsselindikatoren. 2. Verwenden Sie das Log -Analyse -Tool PGBADG

Backend Learning Path: Die Erkundungsreise von Front-End zu Back-End als Back-End-Anfänger, der sich von der Front-End-Entwicklung verwandelt, Sie haben bereits die Grundlage von Nodejs, ...

Der Unterschied zwischen Stringdruck in GO -Sprache: Der Unterschied in der Wirkung der Verwendung von Println und String () ist in Go ...

Das Problem der Verwendung von RETISTREAM zur Implementierung von Nachrichtenwarteschlangen in der GO -Sprache besteht darin, die Go -Sprache und Redis zu verwenden ...

Wie kann man im Beegoorm -Framework die mit dem Modell zugeordnete Datenbank angeben? In vielen BeEGO -Projekten müssen mehrere Datenbanken gleichzeitig betrieben werden. Bei Verwendung von BeEGO ...
