Maison > Article > développement back-end > Convertir une carte Golang en une autre structure de carte
Éditeur PHP Apple vous présentera comment convertir une carte Golang en une autre structure de carte. Au cours du processus de développement, nous devons parfois effectuer certaines opérations de conversion sur la carte originale pour répondre à des besoins spécifiques. Qu'il s'agisse d'une conversion de type de données ou d'une réorganisation structurelle, cela peut être réalisé grâce à quelques méthodes simples. Cet article analysera ce processus en détail pour vous, vous aidera à maîtriser rapidement cette technique et à améliorer l'efficacité du développement. Explorons ensemble ce processus de conversion intéressant !
J'ai besoin d'aide pour convertir cette carte d'entrée en carte de sortie. J'ai essayé d'utiliser switch/case et for sans succès. Merci beaucoup!
Entrez :
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", }, }, }
Sortie
Values{ "toto_voiture_model": { "Citroen": { {Value: "C3"}, }, }, "toto_moto_model": { "Kawasaki": { {Value: "Ninja 1000 SX"}, }, }, "toto_camion_model": { "RENAULT": { {Value: "J5"}, }, "PEUGEOT": { {Value: "255"}, }, }, }
J'ai essayé d'utiliser le boîtier de commutation, les boucles et les cartes. Mais je n'ai pas de résultats pour les participants, je ne trouve pas comment faire correspondre chaque carte, clé et valeur. Merci beaucoup
J'aurais dû utiliser le code suivant pour gérer ce dont vous avez besoin :
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)) }
J'ai ajouté quelques commentaires dans le code juste pour séparer les différentes parties. Les deux premières parties servent uniquement à définir les variables d'entrée et de sortie.
Prenez ce qui se passe dans // conversion
开头的部分是成为函数的良好候选者,但我更愿意将其保留在 main
函数中以用于演示目的。让我回顾一下 loop
:
input
variable_model
, il est pris en comptetempmap
类型的本地范围映射[string]output qui contient le nombre correct d'éléments que nous souhaitons ajouterv
(c'est pourquoi nous traitons des mappages imbriqués) tempmap
output
)La dernière partie imprime simplement un joli json qui peut être facilement lu et inspecté.
Veuillez noter que ce code est simplifié juste pour montrer comment atteindre votre objectif, veuillez l'ajuster avant de passer en production.
S'il vous plaît, dites-moi si cela peut aider, merci !
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!