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

评论由:alexmiller 提供

描述可以使用一些示例

0
...