在开源项目中,我看到以下两种编写规范的方式:注释中编写规范@spec start_link() -> {ok, pid()} 源代码中的规格说明-spec start_link() -> {ok, pid()} 这两者有何区别?是否有一种更受欢迎?
@spec版本早于-spec版本。后者更可取。根据EDoc文档:注意:尽管下面描述的语法仍然可用于指定函数,但我们建议将Erlang规范添加到源代码中,如类型和函数规范所述。这样,Dialyzer的分析就可以在保持文档一致和最新的过程中发挥作用。除非有相同名称的函数规范(@spec标签后跟类型),否则将使用Erlang规范。