среда, 29 мая 2019 г.

Спецификация Go: типы карты (map types)

Карта (map) - это неупорядоченная группа элементов одного типа, называемая типом элемента (element type), индексируемая набором уникальных ключей другого типа, называемого типом ключа (key type). Значение не инициализированной карты равно nil.

MapType     = "map" "[" KeyType "]" ElementType .
KeyType     = Type .

Операторы сравнения == и != должны быть полностью определены для операндов типа ключа; таким образом, тип ключа не должен быть функцией, картой или срезом (slice). Если тип ключа является типом интерфейса, эти операторы сравнения должны быть определены для значений динамического ключа; сбой вызовет панику во время выполнения (run-time panic).

map[string]int
map[*T]struct{ x, y float64 }
map[string]interface{}

Количество элементов карты называется его длиной. Для карты m длину можно обнаружить с помощью встроенной функции len, и она может измениться во время выполнения (run-time). Элементы могут быть добавлены во время выполнения с использованием назначений и извлечены с помощью индексных выражений; они могут быть удалены с помощью встроенной функции delete.

Новое пустое значение карты создается с помощью встроенной функции make, которая принимает тип карты и необязательный указатель емкости в качестве аргументов:

make(map[string]int)
make(map[string]int, 100)

Начальная емкость не ограничивает ее размер: карты растут в соответствии с количеством элементов, хранящихся в них, за исключением нулевых карт (nil maps). Нулевая карта эквивалентна пустой карте, за исключением того, что никакие элементы не могут быть добавлены.


Читайте также:


Комментариев нет:

Отправить комментарий