我想指定一个只是一个集合的类型,即:
-type itemset() :: set(integer()).
Run Code Online (Sandbox Code Playgroud)
这在erlang中可能吗?
只是好奇.
Set不是Erlang中的原始类型,因此没有原始类型规范.但是,如果您有一个定义并导出这种类型的模块,那么您可以从另一个模块引用它.
例如,如果您引用的集合是sets模块中定义的集合stdlib,那么您可以像这样使用它:
-type itemset() :: sets:set(integer()).
Run Code Online (Sandbox Code Playgroud)
请注意对sets模块的引用.
您还可以创建自己的set()使用定义-type和-export_type(如果需要模块外部的类型).查看7.3节:http://erlang.org/doc/reference_manual/typespec.html
完成后,只需替换sets您自己定义的模块即可set().