Erlang 记录中元组字段的规范
请参阅下面我尝试的记录定义。Erlang编译器不考虑<代码>键< /COD>字段定义作为有效语法。 有没有一种方法可以实现类似的功能,而不必将键设为记录,也不必像Erlang 记录中元组字段的规范,erlang,Erlang,请参阅下面我尝试的记录定义。Erlang编译器不考虑键< /COD>字段定义作为有效语法。 有没有一种方法可以实现类似的功能,而不必将键设为记录,也不必像key::tuple()这样定义不清的元组结构 如果不想为键创建记录,则不能在键元组中使用字段名。 若你们删除那个字段名,我相信编译器将能够吃掉它 我的意思是尝试而不是 -record(spot, { key :: {id :: integer(), version:: integer(), live :: boolean(
key::tuple()
这样定义不清的元组结构
如果不想为键创建记录,则不能在键元组中使用字段名。 若你们删除那个字段名,我相信编译器将能够吃掉它 我的意思是尝试而不是
-record(spot, {
key :: {id :: integer(), version:: integer(), live :: boolean()},
name :: binary(),
写
-record(spot, {
key :: {integer(), integer(), boolean()},
name :: binary(),
{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()
}).
-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()
}).