在Erlang中编写规范的指南

时间:2012-02-09 00:11:08

标签: types erlang specs

在开源项目中,我看到以下两种编写规范的方式:

评论中的规范

@spec start_link() -> {ok, pid()}

源代码中的规范

-spec start_link() -> {ok, pid()}

有什么区别?一个人比另一个更受欢迎吗?

1 个答案:

答案 0 :(得分:13)

评论(@spec)版本早于源代码(-spec)版本。后者是可取的。

根据EDoc documentation

  

注意:虽然仍然可以使用下面描述的语法   对于指定函数,我们建议将Erlang规范作为   Types and Function Specification中描述的内容应添加到。{3}}中   而是源代码。这样,Dialyzer的分析就可以了   在保持文档一致性的过程中使用   最新。除非还有一个,否则将使用Erlang规范   函数规范(@spec标记后跟一个类型)具有相同的   名。