请在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
by
...