似乎Clojure编译器默认情况下不执行此操作:Does the Clojure compiler check if records and types implement protocols?
可以使用Lein插件吗?
最佳答案
令人惊讶的 core.typed
引入了“Clojure的可选类型系统”,正如您在official website上看到的那样。
具体来说,您可能要使用自己的defprotocol
宏(from core.typed wiki):
一旦创建了installed,就可以使用lein typed check
通过leiningen运行它。
明显的缺点是您必须注释您的代码。这是通过使用静态类型检查来增加代码安全性所要付出的代价。
您可能还对函数 satisfies?
和 instance?
感兴趣。
关于clojure - 是否有Clojure编译时工具来检查记录或类型是否真正实现了它声称的协议(protocol)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32027613/