请在 2024 年 Clojure 状态调查! 中分享您的想法。

欢迎!请查看 关于 页面以了解更多此网站的工作方式。

0
语法和读取器

在使用线程宏时,什么是更加习惯使用的做法 -- 给函数调用加括号还是不加?

考虑这个示例

(-> (client/get "https://example.com/resource" options)
    first
    :id))])

这是也可以工作的(注意函数调用 first:id 的括号)

(-> (client/get "https://example.com/resource" options)
    (first)
    (:id)))])

我们是否应该加上它?
哪种做法更加习惯?

1 个回答

+2

被选中
 
最佳答案

两种方式都行。我认为不加括号更为常见,但人们对此有不同的偏好。

最近,我的首选是对函数调用进行包装,而不是包装关键字,因为我发现,在导航深度结构并只转换其部分时,突出显示差异对于代码阅读非常有帮助,但我长期以来并没有烦恼去包装一元函数调用。

(-> data (first) :id (transform :it) (f) :result :status :value)

我也喜欢将所有实际的函数调用都进行包装,不管其元数是多少,而不是混合未包装的一元调用和包装的二元以上调用。
...