Erlang Records and ETS — Named Fields and In-Memory Tables
DodaTech
Updated 2026-06-29
1 min read
In this tutorial, you will learn about Erlang Records and ETS. We cover key concepts, practical examples, and best practices to help you master this topic.
Records and ETS tables are essential Erlang tools. Records provide named fields for tuples; ETS provides fast in-memory key-value storage.
Records
%% Definition
-record(person, {name, age = 0, email}).
%% Create
#person{name = "Alice", age = 30}.
%% Access
Person = #person{name = "Bob", age = 25},
Person#person.name. %% => "Bob"
%% Update
Older = Person#person{age = 26}.
%% Pattern matching
#person{name = Name} = Person.
Name. %% => "Bob"
ETS Tables
%% Create table
Table = ets:new(my_table, [set, public, named_table]).
%% Insert
ets:insert(my_table, {user_1, alice, 30}).
ets:insert(my_table, {user_2, bob, 25}).
%% Lookup
ets:lookup(my_table, user_1). %% => [{user_1, alice, 30}]
%% Match
ets:match(my_table, {'_', '$1', 30}). %% => [[alice]]
%% Delete
ets:delete(my_table, user_1).
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro