シーケンスの正しいタイプは何ですか?私はこのコードを持っています:
(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では、場合によってはプリミティブリターン型を適用できるという話がありますが、これは明らかに流動的であり、シーケンス型には適用されません。