Другой способ - преобразовать запись в проплист и использовать библиотечный модуль proplists
для итерации или доступа к определенным полям.Этот пример:
-module(test).
-export([start/0]).
-record(test, {value1, value2, value3}).
start() ->
R = #test{value1=1, value2=2, value3=3},
Fields = record_info(fields, test),
Values = tl(tuple_to_list(R)),
lists:zip(Fields, Values).
создаст следующий проплист:
> c("test").
> Proplist = test:start().
[{value1,1},{value2,2},{value3,3}]
Затем, например, получить значение поля value2
:
> proplists:get_value(value2, Proplist).
2