gpt4 book ai didi

clojure - Clojure 中何时使用 let 与 if-let

转载 作者:行者123 更新时间:2023-12-03 07:43:03 32 4
gpt4 key购买 nike

什么时候使用 if-let 而不是 let 会使代码看起来更好以及对性能有影响吗?

最佳答案

我猜if-let当您想在代码的“then”部分引用 if 条件的值时,应该使用:

即而不是

(let [result :foo]
(if result
(do-something-with result)
(do-something-else)))

你写:

(if-let [result :foo]
(do-something-with result)
(do-something-else))

这更整洁一些,并且可以节省您进一步缩进的时间。就效率而言,您可以看到宏扩展并没有增加太多开销:

(clojure.core/let [temp__4804__auto__ :foo]
(if temp__4804__auto__
(clojure.core/let [result temp__4804__auto__]
(do-something-with result))
(do-something-else)))

这也说明绑定(bind)不能在代码的“else”部分中引用。

关于clojure - Clojure 中何时使用 let 与 if-let,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2010287/

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