我正在学习 Elixir,工具“dialyzer”可以让您进行静态分析 - 使用它期望的参数的类型规范和它返回的输出来注释函数定义。它是完全可选的,但如果要尽可能充分地使用它,它如何与良好的静态类型相匹配?
最佳答案
我的印象是,透析器不像静态类型那么精确,这意味着它有时不会报告错误,尽管它应该报告错误。
从好的方面来说,如果透析器出现故障,那几乎总是我的错。通常,错误通常是由于不正确的类型规范造成的。
所以,虽然我不认为透析器是像静态类型那样好的工具,但它仍然有帮助。特别是,我发现类型规范非常有用,因为它们可以充当文档。最近我换了工作,加入的项目是一个复杂的Erlang项目。由于类型规范,我很容易在代码库中找到方法。
所以我的建议是在较大的项目中使用类型规范。我们只为导出(公共(public))函数和记录编写它们,这是一个很大的帮助,而且不会占用太多时间。我通常首先让代码工作,当我对它感到满意时,添加规范,并运行透析器来验证一切正常。
关于erlang - 静态分析与静态类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23557620/