clojure序列类型

时间:2011-07-17 23:25:36

标签: clojure static-typing typechecking

序列的正确类型是什么?我有这段代码:

(defrecord MethodInfo [^clojure.lang.ISeq preconds ^clojure.lang.ISeq postconds])

但它似乎没有正确执行类型要求,因为我可以写(new MethodInfo 1 2)

1 个答案:

答案 0 :(得分:7)

我的理解是Clojure的 Type Hints 仅出于性能原因,通过侧步反射来改进方法查找;这是他们唯一的目的,而不是用动态语言强制执行静态类型。

请参阅this answer to a similar question

修改:

有人谈论能够enforce primitive return types in some cases in Clojure 1.3,但这显然是不断变化的东西,但仍然不适用于序列类型。