"X" 我希望能够做类似的事情 -6ren">
gpt4 book ai didi

clojure - 有没有办法在 clojure 线程宏中包含类型提示?

转载 作者:行者123 更新时间:2023-12-02 17:49:59 24 4
gpt4 key购买 nike

例如,如示例here ,

=> (-> "a b c " .toUpperCase (.replace "A" "X") (.split " ") first)
=> "X"

我希望能够做类似的事情

 => (-> ^String "a b c " .... etc etc 

避免反射惩罚,尤其是。与java代码交互。

最佳答案

可以使用 -> 宏键入提示表达式。而以下使用反射:

(set! *warn-on-reflection* true)
(def s "1")
(-> s .toString)
;; Reflection warning, NO_SOURCE_PATH:1:1 - reference to field toString can't be resolved.
;;= "1"

这不会:

(-> ^String s .toString)
;;= "1"

也许如果您分享一个您发现很难或不可能输入提示的特定表达方式,我们可以更好地帮助您。

有一种已知情况,附加到宏的 &form 表达式的类型提示被丢弃,请参阅此 JIRA 票证 Macroexpansion discards &form metadata 。也许这就是你所看到的?

关于clojure - 有没有办法在 clojure 线程宏中包含类型提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28197644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com