序列的正确类型是什么?我有这段代码:
(defrecord MethodInfo [^clojure.lang.ISeq preconds ^clojure.lang.ISeq postconds])
但它似乎没有正确执行类型要求,因为我可以写(new MethodInfo 1 2)
。
答案 0 :(得分:7)
我的理解是Clojure的 Type Hints 仅出于性能原因,通过侧步反射来改进方法查找;这是他们唯一的目的,而不是用动态语言强制执行静态类型。
请参阅this answer to a similar question。
修改:
有人谈论能够enforce primitive return types in some cases in Clojure 1.3,但这显然是不断变化的东西,但仍然不适用于序列类型。