Sobes.tech
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")
}