我一直在网上四处寻找 Erlang 程序的各种打字实践,似乎有一些……尽管找到可靠的信息来源有点困难,即我正在寻找有关以下方面的实用信息:
1. -specs
- 这个看起来很有吸引力。一些地方提到在编译时检查具有关联的 -specs 指令的函数(以确保正确的类型使用)......我似乎无法找到有关如何使用它的更多信息(使用哪个工具 - Dialyzer,打字机?)。我真的很想创建一个小的解析器/代码生成器,它可以从表单的函数声明中生成这些“规范”
functionName(param1 :List, param2 :Tuple) -> ...
我还没有看到是否-spec
支持抽象类型(用户声明的类型 - “汽车”类型 -
{car,{weight,_},{height,_},{maxSpeed,_}}
2.这里提到的-deftype
指令
如果我可以开始输入内容并在编译时检查它们,Erlang 对我来说将变得更加强大。我上面提到的解析器/代码生成的运行时将在输出源代码中生成保护类型检查。