Картите са вградения в Go вид за съединени съответствия1 – "име":
"стойност", понякога наричани хешове или речници в други езици.
import (
"fmt"
"maps"
)
func main() {
За да създадете празна карта, използвайте
вградената функция make: make(map[видключ]видстойност).
m := make(map[string]int)
Задайте двойки ключ/стойност като напишете
име[ключ] = стойност
m["k1"] = 7
m["k2"] = 13
fmt.Println ще ни покаже всички двойки ключ/стойност от картата.
fmt.Println("карта:", m)
Вземете стойност, като напишете име[ключ].
v1 := m["k1"]
fmt.Println("v1:", v1)
Ако ключът не съществува, ще получим нулевата стойност за вида данни на съответната стойност1.
v3 := m["k3"]
fmt.Println("v3:", v3)
Когато бъде извикана върху карта, вградената
функция len връща броя на двойките ключ/стойност.
fmt.Println("len:", len(m))
Вградената функция delete премахва двойки от
картата, като укажем ключа.
delete(m, "k2")
fmt.Println("карта:", m)
За да премахнете всички двойки, използвайте
вградената функция clear.
clear(m)
fmt.Println("карта:", m)
Незадължителната втора връщана стойност, когато
вземаме стойност чрез указване на ключ от карта,
показва дали ключът съществува в картата. Това може
да се използва, когато искаме да знаем, дали
стойността е наистина с нулева стойност, като 0,
false или "", или просто не съществува.
Тук не ни е нужна самата стойност и затова я
пренебрегваме като ползваме празното име за
променлива _1.
_, същ := m["k2"]
fmt.Println("съществува:", същ)
Също така можете да обявите и наченете карта едновременно, като напишете следното.
n := map[string]int{"ала": 1, "бала": 2}
fmt.Println("карта:", n)
Пакетът maps съдържа набор от полезни функции за
работа с карти.
n2 := map[string]int{"ала": 1, "бала": 2}
if maps.Equal(n, n2) {
fmt.Println("n == n2")
}
}
Забележете, че картите биват показани във вида
map[k:v k:v] при употреба на fmt.Println.
$ go run maps.go
карта: map[k1:7 k2:13]
v1: 7
v3: 0
len: 2
карта: map[k1:7]
карта: map[]
съществува: false
карта: map[ала:1 бала:2]
n == n2
Следващ пример: Функции.