gat*_*ado 5 static-typing clojure typechecking
什么是正确的序列类型?我有这个代码:
(defrecord MethodInfo [^clojure.lang.ISeq preconds ^clojure.lang.ISeq postconds])
但它似乎没有正确执行类型要求,因为我可以写(new MethodInfo 1 2).
我的理解是,Clojure的类型提示只是出于性能原因,通过侧步反射来改进方法查找; 这是他们唯一的目的,而不是在动态语言中强制执行静态类型.
请查看类似问题的答案.
编辑:
在Clojure 1.3中有一些关于能够强制执行原始返回类型的说法,但这显然是不可避免的,但仍不适用于序列类型.
| 归档时间: | 
 | 
| 查看次数: | 313 次 | 
| 最近记录: |