Как сопоставить ets: match с записью в Erlang?

Я слышал, что указывать записи через кортежи в коде - плохая практика: я всегда должен использовать поля записи ( #record_name {record_field = something} ) вместо простых кортежей {record_name, value1, value2, something} .

Но как мне сопоставить запись с таблицей ETS? Если у меня есть таблица с записями, я могу сопоставить только следующее:

ets:match(Table, {$1,$2,$3,something}

Очевидно, что как только я добавлю несколько новых полей в определение записи, это сопоставление с образцом перестанет работать.

Вместо этого я хотел бы использовать что-то вроде этого:

ets:match(Table, #record_name{record_field=something})

К сожалению, он возвращает пустой список.

8
задан skanatek 29 September 2011 в 08:50
поделиться