Работа с дополнительной памятью
Описание
ЕРМ переменные статичны и ограничены в количестве. Статичность приводит к невозможности организовывать динамические структуры данных (например, списки), для которых нужны функции выделения и освобождения памяти, а ограниченное количество ведёт к необходимости строгого учёта индексов без возможности выйти за их пределы. Более того, ЕРМ строки в виде z-переменных занимают ровно 512 байт каждая в независимости от размера их содержимого. Эра предоставляет программисту до 2 млрд. слотов под массивы новых переменных (числовых или строковых). Размер массивов может изменяться средствами ЕРМ. Поскольку работа с динамическими структурами предполагает автоматическое выделение номеров слотов, то такая возможность присутствует. Слоты с положительными индексами принадлежат пользователю, а с отрицательными используются при автовыделении памяти.
Удаление слота памяти
Пример:
Получение/установка размера слота
Размер слота — это количество элементов в массиве. Команда возвращает -1, если слот не существует.
Пример:
Работа со значениями элементов слотов
Пример:
Получение адреса элемента слота
При удалении слота или изменении его размера, — адрес станет недействительным!
Пример:
Создание нового слота
Старое содержимое слота (если оно было), уничтожается.
*номер слота* — "-1" для автовыделения свободного номера и помещения его в v1.
*тип элементов*:
- 0 (число)
- 1 (строка)
*запоминать ли значения в сохранёнках*
- 0 (нет, при загрузке игры содержимое элементов будет представлять собой случайный мусор)
- 1 (да, содержимое нужно сохранять как есть)
При 0 экономится место в файле и возрастает скорость сохранения.
Пример: