2011-07-17 32 views
5

序列的正確類型是什麼?我有這樣的代碼:clojure序列類型

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

但它似乎並不正確執行類型的要求,因爲我可以寫(new MethodInfo 1 2)

回答

7

我的理解是,Clojure的Type Hints只是出於性能原因,通過側向反射改善方法查找;這是他們唯一的目的,而不是以動態語言強制實施靜態類型。請參閱this answer to a similar question

編輯:

還有就是能夠enforce primitive return types in some cases in Clojure 1.3談話,但這顯然東西是在不斷變化,仍然將不適用於序列類型。

+1

大部分是正確的。您可以在definterface中鍵入提示,並且生成的界面將具有正確類型的字段。儘管如此,這對於互操作目的來說是嚴格的,而且您一般不會強制實施靜態類型。 – amalloy