如何在Clojure中组合let绑定和if语句
我正在学习Clojure,并试图找出简洁清晰地写东西的语言。我试图在从一个返回值或nil的函数中获取一个值(比如从数据库中)之后,有条件地使用一个值做一些事情。我目前使用的是let绑定,然后是if语句。这里有一些类似于我目前拥有的东西:如何在Clojure中组合let绑定和if语句,clojure,Clojure,我正在学习Clojure,并试图找出简洁清晰地写东西的语言。我试图在从一个返回值或nil的函数中获取一个值(比如从数据库中)之后,有条件地使用一个值做一些事情。我目前使用的是let绑定,然后是if语句。这里有一些类似于我目前拥有的东西: (defn foo [key] (let [result (try-getting! key)] (if result (+ result 50) 50))) 我想知道是否有一种更为周全的方法来实现这一点,也许是某种组合的i
(defn foo [key]
(let [result (try-getting! key)]
(if result
(+ result 50)
50)))
我想知道是否有一种更为周全的方法来实现这一点,也许是某种组合的if-let绑定?有没有办法写得更好
谢谢 是的,事实上,
如果让
就是你想要的
(if-let [result (try-getting! key)]
(+ result 50)
50)
这有一种形式:
(defn foo [key]
(if-let [result (try-getting! key)]
(+ result 50)
50))
这正是我要找的!谢谢