Maison  >  Article  >  développement back-end  >  Comment modifier la carte Golang

Comment modifier la carte Golang

青灯夜游
青灯夜游original
2022-12-26 09:53:475455parcourir

Méthode de modification : 1. Utilisez l'instruction "map["key"]=value" pour ajouter ou mettre à jour des éléments. Si "key" existe, mettez à jour l'élément. Si "key" n'existe pas, ajoutez l'élément ; Utilisation La fonction delete() supprime la paire clé-valeur spécifiée de la carte, la syntaxe est "delete(map, keyname)" 3. Recréez un nouvel objet carte, qui peut effacer tous les éléments de la carte, la syntaxe ; est "var mapname map[keytype] valuetype".

Comment modifier la carte Golang

L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.

En langage Go, map est une structure de données spéciale, une collection non ordonnée de paires d'éléments (paire). Pair correspond à une clé (index) et une valeur (valeur), cette structure est donc également appelée tableau associatif ou dictionnaire. , c'est une structure idéale qui permet de trouver rapidement des valeurs Étant donné une clé, la valeur correspondante peut être rapidement trouvée.

map Cette structure de données est également appelée dictionnaire (Python), hachage, HashTable, etc. dans d'autres langages de programmation.

Introduction de map

【1】Map, un type intégré au langage Go, qui associe des paires clé-valeur Nous pouvons obtenir la valeur correspondante via la clé clé. Semblable aux collections dans d'autres langues
Comment modifier la carte Golang

【2】Syntaxe de base

var map变量名 map[keytype]valuetype

PS : types de clé et de valeur : booléen, nombre, chaîne, pointeur, canal, ou il peut également s'agir d'une interface ou d'une structure qui ne contient que les types précédents . Tableau
PS : La clé est généralement de type int, de type chaîne, et la valeur est généralement un nombre (entier, nombre à virgule flottante), une chaîne, une carte, une structure
PS : Clé : tranche, carte, fonction ne sont pas autorisées

[ 3] Code :

Caractéristiques de la carte :

(1) La collection de cartes doit être effectuée avant utilisation (2) La valeur-clé de la carte n'est pas ordonnée
(3) La clé ne peut pas être répétée si des doublons sont rencontrés, cette dernière valeur sera Remplacer la valeur précédente
(4) La valeur peut être répétée

package main
import "fmt"
func main(){
        //定义map变量:
        var a map[int]string
        //只声明map内存是没有分配空间
        //必须通过make函数进行初始化,才会分配空间:
        a = make(map[int]string,10) //map可以存放10个键值对
        //将键值对存入map中:
        a[20095452] = "张三"
        a[20095387] = "李四"
        a[20097291] = "王五"
        a[20095387] = "朱六"
        a[20096699] = "张三"
        //输出集合
        fmt.Println(a)
}

Trois façons de créer une carte
 package main
import "fmt"
func main(){
        //方式1:
        //定义map变量:
        var a map[int]string
        //只声明map内存是没有分配空间
        //必须通过make函数进行初始化,才会分配空间:
        a = make(map[int]string,10) //map可以存放10个键值对
        //将键值对存入map中:
        a[20095452] = "张三"
        a[20095387] = "李四"
        //输出集合
        fmt.Println(a)
        //方式2:
        b := make(map[int]string)
        b[20095452] = "张三"
        b[20095387] = "李四"
        fmt.Println(b)
        //方式3:
        c := map[int]string{
                20095452 : "张三",
                20098765 : "李四",
        }
        c[20095387] = "王五"
        fmt.Println(c)
}

Ajouter, supprimer, modifier et vérifier la carte

[ 1] Opérations d'ajout et de mise à jour :

map["key"]= value ——》Si la clé n'existe pas, elle est ajoutée, si la clé existe, elle est modifiée.

map[“key”]= value ——》 如果key还没有,就是增加,如果key存在就是修改。

【2】删除操作:

delete(map,“key”) , delete是一个内置函数,如果key存在,就删除该key-value,如果k的y不存在,不操作,但是也不会报错

Comment modifier la carte Golang

【3】清空操作:

(1)如果我们要删除map的所有key ,没有一个专门的方法一次删除,可以遍历一下key,逐个删除

(2)或者map = make(…)【2】Opération de suppression :

delete(map, "key") , delete est une fonction intégrée Si la clé existe, supprimez la valeur-clé si le y de k. n'existe pas, Aucune opération, mais aucune erreur ne sera signalée

2 .png

【3】Opération Effacer :

(1) Si nous voulons supprimer toutes les clés de la carte, il n'y a pas de moyen spécial pour les supprimer d'un coup. Nous pouvons parcourir le clés et supprimez-les une par une

(2) ou map = make(...), créez-en une nouvelle, laissez l'original devenir une poubelle et être recyclée par gc

[4] Opération de recherche : value, bool = map[key]value est une valeur renvoyée, bool indique s'il faut renvoyer, vrai ou faux

package main
import "fmt"
func main(){
        //定义map
        b := make(map[int]string)
        //增加:
        b[20095452] = "张三"
        b[20095387] = "李四"
        //修改:
        b[20095452] = "王五"
        //删除:
        delete(b,20095387)
        delete(b,20089546)
        fmt.Println(b)
        //查找:
        value,flag := b[200]
        fmt.Println(value)
        fmt.Println(flag)
}
🎜[5] Obtenez la longueur : fonction len🎜🎜[6] Traverse : pour -range🎜
package main
import "fmt"
func main(){
        //定义map
        b := make(map[int]string)
        //增加:
        b[20095452] = "张三"
        b[20095387] = "李四"
        b[20098833] = "王五"
        //获取长度:
        fmt.Println(len(b))
        //遍历:
        for k,v := range b {
                fmt.Printf("key为:%v value为%v \t",k,v)
        }
        fmt.Println("---------------------------")
        //加深难度:
        a := make(map[string]map[int]string)
        //赋值:
        a["班级1"] = make(map[int]string,3)
        a["班级1"][20096677] = "露露"
        a["班级1"][20098833] = "丽丽"
        a["班级1"][20097722] = "菲菲"
        a["班级2"] = make(map[int]string,3)
        a["班级2"][20089911] = "小明"
        a["班级2"][20085533] = "小龙"
        a["班级2"][20087244] = "小飞"
        for k1,v1:= range a {
                fmt.Println(k1)
                for k2,v2:= range v1{
                        fmt.Printf("学生学号为:%v 学生姓名为%v \t",k2,v2)
                }
                fmt.Println()
        }
}
🎜[Recommandations associées : 🎜Tutoriel vidéo Go🎜, 🎜Enseignement de la programmation🎜] 🎜

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn