Kaedah pengubahsuaian: 1. Gunakan penyataan "map["key"]=value" untuk menambah atau mengemas kini elemen Jika "kunci" wujud, kemas kini elemen tersebut Jika "kunci" tidak wujud elemen. ; 2. Gunakan fungsi delete() untuk memadam pasangan nilai kunci yang ditentukan daripada peta, sintaksnya ialah "padam(peta, nama kunci)"; elemen dalam peta, sintaksnya ialah "var mapname map[keytype]valuetype".
Persekitaran pengendalian tutorial ini: sistem Windows 7, GO versi 1.18, komputer Dell G3.
Dalam bahasa Go, peta ialah struktur data khas, koleksi pasangan elemen yang tidak tertib (Pair) sepadan dengan kunci (indeks) dan nilai (nilai), jadi struktur ini juga dipanggil tatasusunan Bersekutu atau kamus ialah struktur ideal yang boleh mencari nilai dengan cepat Jika diberi kunci, nilai yang sepadan boleh ditemui dengan cepat.
peta Struktur data ini juga dipanggil kamus (Python), hash, HashTable, dsb. dalam bahasa pengaturcaraan lain.
[1] Peta, sejenis terbina dalam bahasa Go, yang mengaitkan pasangan nilai kunci Sambungan, kita boleh dapatkan nilai nilai yang sepadan melalui kunci kekunci. Sama seperti koleksi dalam bahasa lain
[2] Sintaks asas
var map变量名 map[keytype]valuetype
PS: jenis kunci dan nilai: bool, nombor, rentetan, penunjuk, saluran , dsb. Ia boleh menjadi antara muka, struktur atau tatasusunan yang hanya mengandungi jenis sebelumnya
PS: kunci biasanya jenis int atau rentetan dan nilai biasanya nombor (integer, nombor titik terapung), rentetan, peta, atau struktur
PS: Kunci: kepingan, peta dan fungsi tidak dibenarkan
[3] Kod:
Ciri-ciri peta:
(1) Peta pengumpulan mesti dibuat
sebelum digunakan (2) Nilai kunci peta tidak tertib
(3) Kunci tidak boleh diulang, nilai terakhir akan menggantikan nilai sebelumnya
(4) Nilai boleh diulang
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) }
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) }
【1】Tambah dan kemas kini operasi:
map[“key”]= value
——》 Jika kunci tidak wujud, ia ditambah, jika kunci wujud, ia diubah suai.
【2】Operasi padam:
delete(map,“key”)
, padam ialah fungsi terbina dalam Jika kekunci wujud, nilai kekunci dipadamkan , tiada operasi dilakukan, tetapi Tiada ralat akan dilaporkan
【3】Operasi kosong:
(1) Jika kita mahu memadamkan semua kekunci peta, tiada kaedah khas untuk memadamnya sekaligus, anda boleh melintasi kekunci, padam
(2) atau map = make(…)
satu persatu, buat yang baharu, biarkan yang asal menjadi sampah, dan dikitar semula oleh gc
[4] Operasi carian:
value, bool = map[key]
value ialah nilai yang dikembalikan, bool ialah sama ada untuk mengembalikan, sama ada benar atau salah
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] Dapatkan panjang: fungsi len
【6】Traversal: untuk-julat
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() } }
[Cadangan berkaitan: Pergi tutorial video, Pengajaran pengaturcaraan]
Atas ialah kandungan terperinci Cara mengubah suai peta golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!