Senior
Какво можеш да разкажеш за map в Go?
sobes.tech AI
Отговор от AI
В Go, map е вградена структура от данни, която реализира асоциативен масив или речник, където ключовете се асоциират със стойности.
Характеристики на map в Go:
- Ключовете и стойностите имат определени типове, например
map[string]int— ключове от тип низ, стойности цели числа. - Map-ът се инициализира с помощта на функцията
make, например:m := make(map[string]int). - Достъп до елементите чрез
m[key]. - Ако ключът не съществува, се връща нулевата стойност на типа стойност.
- Може да се провери наличието на ключ с помощта на втория връщан резултат:
val, ok := m[key]. - Map-овете не са подредени, редът на обхождане е произволен.
- Map-овете не са потокобезопасни, за конкурентен достъп трябва да се използва синхронизация.
Пример:
package main
import "fmt"
func main() {
m := make(map[string]int)
m["apple"] = 5
m["banana"] = 3
val, ok := m["apple"]
if ok {
fmt.Println("apple:", val)
}
// Премахване на ключ
delete(m, "banana")
}