コード内のタプルを使ってレコードを指定するのは悪い習慣であると聞いています。普通のタプル{record_name, value1, value2, something}
の代わりに常にレコードフィールド(#record_name{record_field = something}
)を使用する必要があります。etsの一致方法:Erlangのレコードとの一致?
しかし、どのようにレコードをETSテーブルと照合するのですか?私はレコードを持つテーブルを持っている場合は、私は次のように一致させることができます:私がレコード定義にいくつかの新しいフィールドを追加したら、このパターンマッチは動作を停止しますことは明らかである
ets:match(Table, {$1,$2,$3,something}
。
代わりに、私はこのようなものを使用したいと思います:
ets:match(Table, #record_name{record_field=something})
残念ながら、それは空のリストを返します。