Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在开源项目中,我看到以下两种编写规范的方式:
评论中的规格
@spec start_link() -> {ok, pid()}
源代码中的规范
-spec start_link() -> {ok, pid()}
有什么不同?一个比另一个更受欢迎吗?
注释 ( @spec) 版本早于源代码 ( -spec) 版本。后者更可取。
@spec
-spec
根据EDoc 文档:
注意:尽管下面描述的语法仍然可以用于指定函数,但我们建议将类型和函数规范中描述的 Erlang 规范添加到源代码中。通过这种方式,可以在保持文档一致和最新的过程中利用 Dialyzer 的分析。除非还有同名的函数规范(@spec 标记后跟类型),否则将使用 Erlang 规范。