2024年Clojure调查问卷中分享您的想法!

欢迎!请参阅关于页面以获取更多关于该功能的简要信息。

0
错误

返回原语的函数使用元数据在参数列表上提示类型,而不是在函数名称上。在函数名称上使用原语类型提示应打印错误信息。

目前,放置错误的原语提示会静默地读取且不报错。

4 个答案

0
_评论由: jafingerhut_做出

可以在指定函数或任何想要的值的Var上类型化一个原语值,如下所示

(def {:tag 'long} foo 17)

(defn {:tag 'double} bar [x y]
  (* 2.0 x y))

我认为必须使用{:tag 'long'}而不是^long,因为尝试使用^long最终会给出一个无用的类型提示,这是函数clojure.core/long的值。

然而,Clojure编译器将使用上面示例中的原语类型提示以避免在适当的Java交互调用中使用反射,因此将它们作为错误似乎是不希望的。
0

评论由: lvh做出

或者,也许编译器可以直接使用类型提示?虽然^long现在无用了,但其意图似乎是明确的。

0
by

评论者:alexmiller

描述可以使用一些示例

0
by
...