# Ассоциативные массивы

Здесь описаны операторы и функции для работы с ассоциативными массивами **map**. Запись **map.typename** означает, что вы можете указать любой тип, но в случае бинарного оператора, этот тип должен быть одинаковым у обоих массивов.

* [bool( map.typename m ) bool](/stdlib/map.md#bool-map-typename-m-bool)
* [Del( map.typename m, str key ) map.typename](/stdlib/map.md#del-map-typename-m-str-key-map-typename)
* [IsKey( map.typename m, str key ) bool](/stdlib/map.md#iskey-map-typename-m-str-key-bool)
* [Key( map.typename m, int index ) str](/stdlib/map.md#key-map-typename-m-int-index-str)

## Операторы

| Оператор                         | Результат    | Описание                                                                                      |
| -------------------------------- | ------------ | --------------------------------------------------------------------------------------------- |
| **\*** map.typename              | int          | Возвращает количество элементов в массиве.                                                    |
| map.typename **?**               | bool         | Вызов *bool(map.typename)*.                                                                   |
| map.typename **=** map.typename  | map.typename | Присваивание.                                                                                 |
| map.typename **&=** map.typename | map.typename | Создать клон ассоциативного массива. Новая переменная будет работать с тем же набором данных. |
| map.typename **\[** str **]**    | typename     | Присвоить/получить значение ассоциативного массива по ключу.                                  |

## Функции

### bool(map.typename m) bool

Функция *bool* возвращает *false*, если ассоциативный массив пустой. В противном случае, возвращается *true*.

### Del( map.typename m, str key ) map.typename

Функция *Del* удалять указанный ключ и его значение из массива *map*. Возвращается параметр *m*.

### IsKey( map.typename m, str key ) bool

Функция *IsKey* возвращает *true*, если в ассоциативном массиве *m* существует значение с указанным ключом и *false*, в противном случае.

### Key( map.typename m, int index ) str

Функция *Key* возвращает ключ элемента по его индексу. Например, эта функция может быть использована в цикле *for* для получения ключа элемента.

```go
for val,i in mymap {
    Println("\(Key(mymap, i)):\(val)")
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ru.gentee.org/stdlib/map.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
