11

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

评论中的规格

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

源代码中的规范

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

有什么不同?一个比另一个更受欢迎吗?

4

1 回答 1

13

注释 ( @spec) 版本早于源代码 ( -spec) 版本。后者更可取。

根据EDoc 文档

注意:尽管下面描述的语法仍然可以用于指定函数,但我们建议将类型和函数规范中描述的 Erlang 规范添加到源代码中。通过这种方式,可以在保持文档一致和最新的过程中利用 Dialyzer 的分析。除非还有同名的函数规范(@spec 标记后跟类型),否则将使用 Erlang 规范。

于 2012-02-09T02:00:11.553 回答