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

时间:2015-01-25 20:48:17

标签: clojure

我正在学习Clojure,并试图找出简洁明了的语言。我从一个返回值或nil的函数中获取值(比如从数据库中)之后尝试有条件地对某个值执行某些操作。我目前正在使用let绑定,然后使用if语句。这与我目前的情况类似:

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

我试图弄清楚是否有更简洁的方法来做到这一点,也许是某种组合的if-let绑定?有没有办法更好地写这个?

谢谢!

2 个答案:

答案 0 :(得分:8)

此格式为if-let

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

答案 1 :(得分:5)

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

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