5

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

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

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

4

1 回答 1

7

我的理解是,Clojure 的类型提示只是出于性能原因,通过回避反射来改进方法查找;这是他们唯一的目的,而不是在动态语言中强制执行静态类型。

请参阅此对类似问题的回答

编辑:

有人谈到在 Clojure 1.3 中的某些情况下能够强制执行原始返回类型,但这显然是不断变化的,并且仍然不适用于序列类型。

于 2011-07-18T01:37:38.977 回答