Sobes.tech
Back to questions
Senior
5

Как устроены map в Go?

Companies where asked
Бюро 1440Бюро 1440

Answer from AI

sobes.tech AI

В Go map — это встроенный тип данных, реализующий ассоциативный массив или словарь, где ключи сопоставляются со значениями.

Основные особенности:

  • Объявление: map[keyType]valueType.
  • Инициализация: с помощью функции make или литерала.
  • Доступ: чтение и запись по ключу.
  • Отсутствие порядка: элементы в map не упорядочены.
  • Потокобезопасность: map не является потокобезопасным, для конкурентного доступа требуется синхронизация.

Пример:

package main
import "fmt"

func main() {
    // Создаем map с ключами string и значениями int
    ages := make(map[string]int)

    // Добавляем элементы
    ages["Alice"] = 30
    ages["Bob"] = 25

    // Читаем элемент
    fmt.Println("Возраст Alice:", ages["Alice"])

    // Проверка наличия ключа
    age, ok := ages["Charlie"]
    if !ok {
        fmt.Println("Ключ Charlie не найден")
    } else {
        fmt.Println("Возраст Charlie:", age)
    }
}

Таким образом, map в Go — это удобный и эффективный способ хранения пар ключ-значение с быстрым доступом.