如何用 `lein change` 完全替换一个键
How to completely replace a key with `lein change`
我是 Clojure 的新手,我刚刚开始了解 leiningen 可以做的所有有趣的事情。一件看起来很酷的事情是 lein change
,它允许您提供一个函数和参数以应用于 project.clj
中的键。因此,如果您的 :url
值为 https://www.example.com
,您可以 运行
lein change url str "/myproject"
which 运行s (str (:url project) "/myproject")
(假设项目结构像地图一样工作)。酷
我的问题是:有没有什么精辟的方法可以用lein change
来完全替换一个key?我可以看到我需要为 lein change
提供一个忽略其第一个参数的函数,并为 returns 提供第二个参数。如果有这样的函数——称它为 clobber
——那么我可以 运行:
lein change url clobber "https://new.example.com"
这将变成 (clobber (:url project) "https://new.example.com")
。
是否有像 clobber
一样工作的内置程序,或者我必须用 ->>
做一些黑魔法?
注意:我意识到我可以打开文件并更改值,但我想找到一个优雅的解决方案来解决这个难题!
lein change
接受伪函数 set
表示 "replace":
lein change url set "http://example.com"
我是 Clojure 的新手,我刚刚开始了解 leiningen 可以做的所有有趣的事情。一件看起来很酷的事情是 lein change
,它允许您提供一个函数和参数以应用于 project.clj
中的键。因此,如果您的 :url
值为 https://www.example.com
,您可以 运行
lein change url str "/myproject"
which 运行s (str (:url project) "/myproject")
(假设项目结构像地图一样工作)。酷
我的问题是:有没有什么精辟的方法可以用lein change
来完全替换一个key?我可以看到我需要为 lein change
提供一个忽略其第一个参数的函数,并为 returns 提供第二个参数。如果有这样的函数——称它为 clobber
——那么我可以 运行:
lein change url clobber "https://new.example.com"
这将变成 (clobber (:url project) "https://new.example.com")
。
是否有像 clobber
一样工作的内置程序,或者我必须用 ->>
做一些黑魔法?
注意:我意识到我可以打开文件并更改值,但我想找到一个优雅的解决方案来解决这个难题!
lein change
接受伪函数 set
表示 "replace":
lein change url set "http://example.com"