“-spec”在Erlang语法中做了什么?如果使用或不使用-spec创建函数,那么差异是什么?

时间:2017-06-22 04:58:53

标签: erlang

我是erlang编程的新手。我有很多疑问。其中一个是使用-spec。

“-spec”在Erlang语法中做了什么?如果使用或不使用-spec

创建函数,有什么区别

没有-spec的功能

add(A, B) ->
    A + B.

与-spec一起使用

-spec add(Number, Number).
add(A, B) ->
    A + B.

我在google上搜索但无法理解-spec的确切用法。有人可以解释一下吗?

1 个答案:

答案 0 :(得分:7)

<div class = "oneClass" id = "oneId"> <div class = "abc"> // NOT ALLOWED TO ADD ANYTHING HERE Phil </div> </div> <div class ="twoClass" id = "twoId"> <div class = "abc"> // NOT ALLOWED TO ADD ANYTHING HERE Heath </div> </div> 会添加有关代码的信息。它表示函数的arity并与<div class = "oneClass" id = "oneId"> <div class = "xyz"> // CLASS NAME GOT CHANGED Phil </div> </div> <div class ="twoClass" id = "twoId"> <div class = "abc"> // CLASS NAME REMAINES SAME Heath </div> </div> 声明相结合,对文档和错误检测工具很有帮助。

Edoc等工具使用这些类型规范来构建文档。 像Dialyzer这样的工具使用它来进行代码的静态分析。

因此,它不会被正在运行的代码直接使用,但许多工具使用它来更好地理解&#34;代码。