请参阅下面我对记录定义的尝试.Erlang编译器不将key
字段定义视为有效语法.
有没有办法完成类似的事情,没有创建关键记录或只是一个未定义的元组结构key :: tuple()
?
-record(spot, {
key :: {id :: integer(), version:: integer(), live :: boolean()},
name :: binary(),
short_description :: binary(),
address1 :: binary(),
address2 :: binary(),
address3 :: binary(),
postalcode :: binary(),
city :: binary(),
phone :: binary(),
website_url :: binary(),
menu_url :: binary(),
last_modified_at :: erlang:timestamp()}).
Run Code Online (Sandbox Code Playgroud)
{id :: integer(), version:: integer(), live :: boolean()}
是无效的类型规范.您可以使用记录定义,也可以只指定类型信息{integer(), integer(), boolean()}
.
所以使用记录看起来像.
-record(spot_key, {
id :: integer(),
version:: integer(),
live :: boolean()
}).
-record(spot, {
key :: #spot_key{},
name :: binary(),
short_description :: binary(),
address1 :: binary(),
address2 :: binary(),
address3 :: binary(),
postalcode :: binary(),
city :: binary(),
phone :: binary(),
website_url :: binary(),
menu_url :: binary(),
last_modified_at :: erlang:timestamp()
}).
Run Code Online (Sandbox Code Playgroud)