Модуль ets

Модуль ets содержит функции для работы с таблицами ETS — хранилищем термов Эрланга. В отличие от DETS таблицы ETS хранятся в оперативной памяти компьютера, что обеспечивает максимально быстрый доступ к объектам.

Функции модуля ets

all() Возвращает список всех ETS-таблиц на ноде.

delete(Table) Удаляет всю ETS-таблицу (завершение работы с ней).

delete(Table, Key) Удаляет все объекты в ETS-таблице с ключом Key.

delete_all_objects(Table) Удаляет все объекты из данной ETS-таблицы. Это атомарная и изолированная операция.

delete_object(Table, Object) Удаляет из ETS-таблицы в точности заданный объект (не только по ключу). В таблице типа duplicate_bag удаляет все заданные объекты, если их много.

file2tab(Filename) Возвращает из файла ETS-таблицу, сохранённую с помощью tab2file.

file2tab(Filename, Options) Возвращает из файла ETS-таблицу, сохранённую с помощью tab2file; возможная опция — {verify,boolean()}, служит для верификации.

first(Table) Возвращает первый ключ из ETS-таблицы.

first_lookup(Table) Возвращает первый ключ из ETS-таблицы и объект(ы), связанные с ним.

foldl(Function, Acc0, Table) Пробежаться по всей ETS-таблице слева направо с помощью фунтерма и аккумулятора; у фунтерма должна быть арность 2 — для элемента таблицы и аккумулятора.

foldr(Function, Acc0, Table) Пробежаться по всей ETS-таблице справа налево с помощью фунтерма и аккумулятора; у фунтерма должна быть арность 2 — для элемента таблицы и аккумулятора.

from_dets(Table, DetsTab) Заполняет уже созданную ETS-таблицу объектами из уже открытой DETS-таблицы.

fun2ms(LiteralFun) Псевдофункция, транслирующая литерально заданный фунтерм в спецификацию совпадения.

give_away(Table, Pid, GiftData) Делает указанный актор новым владельцем ETS-таблицы.

i() Показывает в терминале информацию обо всех существующих ETS-таблицах.

i(Table) Показывает в терминале содержимое ETS-таблицы.

info(Table) Возвращает общую информацию о ETS-таблице в виде списка кортежей.

info(Table, Item) Информация о ETS-таблице — только по данному тегу (например, size).

init_table(Table, InitFun) Заменяет существующие объекты в ETS-таблице созданными с помощью инициализирующего фунтерма.

insert(Table, ObjectOrObjects) Вставляет в ETS-таблицу один или несколько объектов.

insert_new(Table, ObjectOrObjects) Вставляет, как и insert/2, новые объекты в ETS-таблицу, но только если ещё нет объектов с таким ключом.

is_compiled_ms(Term) Проверяет, является ли терм валидной скомпилированной спецификацией соответствия.

last(Table) Возвращает последний ключ для ETS-таблицы (имеет смысл только для ordered_set).

last_lookup(Table) Возвращает объект(ы), ассоциированные с последним ключом в ETS-таблице.

lookup(Table, Key) Ищет в ETS-таблице и возвращает список всех объектов с данным ключом.

lookup_element(Table, Key, Pos) В ETS-таблице Table ищет объект (кортеж) по ключу Key и возвращает из этого кортежа элемент в позиции Pos; для bag и duplicate_bag возвращает список таких элементов.

lookup_element(Table, Key, Pos, Default) В ETS-таблице Table ищет объект (кортеж) по ключу Key и возвращает из этого кортежа элемент в позиции Pos; если объект не найден, возвращает дефолтный терм.

match(Continuation) Продолжает сопоставление, начатое для ETS-таблицы с помощью match/3.

match(Table, Pattern) Сопоставляет объекты в таблице с помощью паттерна.

match(Table, Pattern, Limit) Сопоставляет объекты в ETS-таблице с помощью паттерна; возвращает ограниченное количество найденных объектов.

match_delete(Table, Pattern) Удаляет все объекты из ETS-таблицы, удовлетворяющие данному шаблону.

match_object(Continuation) Продолжает сопоставление объектов ETS-таблицы, начатое с помощью match_object/3.

match_object(Table, Pattern) Сопоставляет объкты ETS-таблицы с данным шаблоном.

match_object(Table, Pattern, Limit) Сопоставляет объекты ETS-таблицы с шаблоном; возвращает ограниченное количество объектов.

match_spec_compile(MatchSpec) Трансформирует спецификацию сопоставления во внутреннее представление.

match_spec_run(List, CompiledMatchSpec) Запускает скомпилированное сопоставление (используется в основном Мнезией).

member(Table, Key) Проверяет, есть ли в ETS-таблице хотя бы один элемент с данным ключом.

new(Name, Options) Создаёт новую ETS-таблицу, возвращая её идентификатор.

next(Table, Key1) Возвращает следующий ключ, следующий за данным в ETS-таблице.

next_lookup(Table, Key1) Работает как next/2, только возвращает весь объект (объекты) из ETS-таблицы.

prev(Table, Key1) Возвращает ключ, предшествующий данному в ETS-таблице.

prev_lookup(Table, Key1) Работает как prev/2, только возвращает объект(ы) из ETS-таблицы целиком.

rename(Table, Name) Переименование ETS-таблицы.

repair_continuation(Continuation, MatchSpec) Используется в Мнезии для восстановления данных из внешнего формата, которы могут быть повреждены.

safe_fixtable(Table, Fix) Безопасное фиксирование ETS-таблицы.

select(Continuation) Продолжает сопоставление с ETS-таблицей, начатое select/3.

select(Table, MatchSpec) Сопоставляет объекты в ETS-таблице, используя спецификацию соответствия; более общий подход в сравнении с match/2.

select(Table, MatchSpec, Limit) Работает как ets:select/2, но возвращает ограниченный список.

select_count(Table, MatchSpec) Считает количество объектов в ETS-таблице, которые подходят под спецификацию соответствия.

select_delete(Table, MatchSpec) Сравнивает объекты ETS-таблицы со спецификацией соответствия и удаляет их, если результат положительный.

select_replace(Table, MatchSpec) Сравнивает объекты ETS-таблицы со спецификацией соответствия и в случае положительного результата заменяет их с результатом сопоставления.

select_reverse(Continuation) Продолжает сопоставление, начатое ets:select_reverse/3.

select_reverse(Table, MatchSpec) Работает как ets:select/2, но для типа ordered_set в обратном порядке.

select_reverse(Table, MatchSpec, Limit) Работает как ets:select/3, но для типа ordered_set в обратном порядке.

setopts(Table, Opts) Сменить опции ETS-таблицы; после создания можно изменить только heir.

slot(Table, I) Используется только в целях отладки: возвращает все объекты из данного слота.

tab2file(Table, Filename) Сохраняет ETS-таблицу в файл, откуда её потом можно будет восстановить с помощью file2tab.

tab2file(Table, Filename, Options) Сохраняет ETS-таблицу в файл, откуда её потом можно будет восстановить с помощью file2tab; для надёжности в качестве опций можно указать object_count и md5sum.

tab2list(Table) Возвращает список всех объектов в ETS-таблице.

tabfile_info(Filename) Возвращает информацию о файле, в который была сохранена ETS-таблица с помощью tab2file.

table(Table) Возвращает QLC-манипулятор для ETS-таблицы.

table(Table, Options) Возвращает QLC-манипулятор для ETS-таблицы, при помощи опций.

take(Table, Key) Возвращает и удаляет все объекты из ETS-таблицы с данным ключом.

test_ms(Tuple, MatchSpec) Тестирует спецификацию соответствия, используемую в select.

to_dets(Table, DetsTab) Заполняет уже открытую DETS-таблицу объектами уже созданной ETS-таблицы; DETS-таблица предварительно очищается.

update_element(Table, Key, ElementSpec, Default) Эффективный способ обновления объектов в ETS-таблице.

whereis(TableName) Возвращает идентификатор ETS-таблицы по её имени-атому.


Copyright © 2026 Алексей Карманов