0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Карты (map) - это встроенный тип данных в Go для хранения пар "ключ-значение". Они позволяют быстро находить, добавлять и удалять данные по ключу. Карты используются везде, где нужен ассоциативный массив или словарь.</p>
1
<p>Карты (map) - это встроенный тип данных в Go для хранения пар "ключ-значение". Они позволяют быстро находить, добавлять и удалять данные по ключу. Карты используются везде, где нужен ассоциативный массив или словарь.</p>
2
<h2>Определение карты</h2>
2
<h2>Определение карты</h2>
3
<p>Карту можно объявить без инициализации:</p>
3
<p>Карту можно объявить без инициализации:</p>
4
<p>Здесь map[string]int - это тип карты, где:</p>
4
<p>Здесь map[string]int - это тип карты, где:</p>
5
<ul><li><strong>Ключ</strong>имеет тип string.</li>
5
<ul><li><strong>Ключ</strong>имеет тип string.</li>
6
<li><strong>Значение</strong>имеет тип int.</li>
6
<li><strong>Значение</strong>имеет тип int.</li>
7
</ul><p>Ключами в Go могут быть любые типы данных, которые<strong>сравнимы</strong>(comparable). Это значит, что они могут использоваться в операциях == и !=. Это могут быть строки, числа, булевы значения, массивы фиксированной длины и структуры со сравниваемыми полями. Срезы, карты и функции не могут быть ключами, так как они не поддерживают сравнение.</p>
7
</ul><p>Ключами в Go могут быть любые типы данных, которые<strong>сравнимы</strong>(comparable). Это значит, что они могут использоваться в операциях == и !=. Это могут быть строки, числа, булевы значения, массивы фиксированной длины и структуры со сравниваемыми полями. Срезы, карты и функции не могут быть ключами, так как они не поддерживают сравнение.</p>
8
<h2>Создание карты</h2>
8
<h2>Создание карты</h2>
9
<p>При объявлении карта равна nil.</p>
9
<p>При объявлении карта равна nil.</p>
10
<p>Чтобы начать её использовать, необходимо явно выделить память с помощью make():</p>
10
<p>Чтобы начать её использовать, необходимо явно выделить память с помощью make():</p>
11
<p>Можно создать карту и сразу инициализировать её значениями через литерал:</p>
11
<p>Можно создать карту и сразу инициализировать её значениями через литерал:</p>
12
<h2>Обращение к элементам</h2>
12
<h2>Обращение к элементам</h2>
13
<p>Чтобы получить значение по ключу, используется синтаксис map[key]:</p>
13
<p>Чтобы получить значение по ключу, используется синтаксис map[key]:</p>
14
<p>Если обратиться к несуществующему ключу, будет возвращено значение по умолчанию для типа, например 0 для чисел или пустая строка для string:</p>
14
<p>Если обратиться к несуществующему ключу, будет возвращено значение по умолчанию для типа, например 0 для чисел или пустая строка для string:</p>
15
<h2>Проверка существования ключа</h2>
15
<h2>Проверка существования ключа</h2>
16
<p>Чтобы проверить, есть ли ключ в карте, используется "двойное присваивание":</p>
16
<p>Чтобы проверить, есть ли ключ в карте, используется "двойное присваивание":</p>
17
<p>Переменная exists будет true, если ключ найден, и false - если нет.</p>
17
<p>Переменная exists будет true, если ключ найден, и false - если нет.</p>
18
<h2>Удаление элемента</h2>
18
<h2>Удаление элемента</h2>
19
<p>Удалить элемент из карты можно с помощью встроенной функции delete():</p>
19
<p>Удалить элемент из карты можно с помощью встроенной функции delete():</p>
20
<p>Если ключа нет, delete() просто ничего не делает.</p>
20
<p>Если ключа нет, delete() просто ничего не делает.</p>
21
<h2>Размер карты</h2>
21
<h2>Размер карты</h2>
22
<p>Чтобы узнать количество элементов в карте, используется len():</p>
22
<p>Чтобы узнать количество элементов в карте, используется len():</p>
23
23