请分享您的想法,参与《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
参考:[跳转到CLJ-790](https://clojure.atlassian.net/browse/CLJ-790)(由 [email protected] 报告)
...