如何在 Clojure 中组合 let 绑定和 if 语句

How to combine a let binding and an if statment in Clojure

我正在学习 Clojure,并试图找到一种语言来简洁明了地写东西。在从 returns 值或 nil 的函数获取值(比如从数据库)后,我试图有条件地对值做一些事情。我目前正在使用 let 绑定,然后是 if 语句。这是与我目前拥有的类似的东西:

(defn foo [key]
  (let [result (try-getting! key)]
    (if result
      (+ result 50)
      50)))

我想知道是否有更简洁的方法来做到这一点,也许是某种组合的 if-let 绑定?有没有更好的写法?

谢谢!

是的,事实上if-let就是你想要的。

 (if-let [result (try-getting! key)]
   (+ result 50)
   50)

这里有表格if-let

(defn foo [key]
  (if-let [result (try-getting! key)]
    (+ result 50)
    50))