コード内でタプルを使用してレコードを指定するのは悪い習慣だと聞いたことがあります。#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})
残念ながら、空のリストを返します。