"语句中的参数-6ren"> "语句中的参数-代码后面的代码不起作用,因为重新查找接受字符串作为第一个参数,正则表达式作为第二个参数。 (-> "hello" .toUpperCase (re-find #".$")) 如果我像这-6ren">
gpt4 book ai didi

clojure - 翻转 "->"语句中的参数

转载 作者:太空宇宙 更新时间:2023-11-03 18:44:31 28 4
gpt4 key购买 nike

代码后面的代码不起作用,因为重新查找接受字符串作为第一个参数,正则表达式作为第二个参数。

(-> "hello"
.toUpperCase
(re-find #".$"))

如果我像这样包装 re-find,代码就会工作:

(defn re-find2 [s r]
(re-find r s))

如果我现在用 re-find2 替换 re-find,我会得到我期望的结果:一个大写的“O”。

我怎么能在不包装重新查找的情况下解决这个问题?

最佳答案

如前所述,如果您的所有函数只有一个参数或将结果作为最后一个参数,则可以使用 thread-last。但是,如果您还有具有多个参数的函数,并且您必须将结果传递到 -> 或 ->> 无法处理的特定位置,那么 as-> 宏可能是您最好的选择。

此宏允许您为每个函数调用的结果指定一个绑定(bind)。由于结果现在有了名称,您可以控制该参数的位置。看看this blog post on threading macros

关于clojure - 翻转 "->"语句中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34580990/

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