什么是正确的序列类型?我有这个代码:
(defrecord MethodInfo [^clojure.lang.ISeq preconds ^clojure.lang.ISeq postconds])
但它似乎没有正确执行类型要求,因为我可以编写(new MethodInfo 1 2)
.
什么是正确的序列类型?我有这个代码:
(defrecord MethodInfo [^clojure.lang.ISeq preconds ^clojure.lang.ISeq postconds])
但它似乎没有正确执行类型要求,因为我可以编写(new MethodInfo 1 2)
.
我的理解是,Clojure 的类型提示只是出于性能原因,通过回避反射来改进方法查找;这是他们唯一的目的,而不是在动态语言中强制执行静态类型。
请参阅此对类似问题的回答。
编辑:
有人谈到在 Clojure 1.3 中的某些情况下能够强制执行原始返回类型,但这显然是不断变化的,并且仍然不适用于序列类型。