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
参考:[https://clojure.atlassian.net/browse/CLJ-790](https://clojure.atlassian.net/browse/CLJ-790) (由 [email protected] 报告)
...