我正在学习Clojure,并试图找出简洁明了的语言。我从一个返回值或nil的函数中获取值(比如从数据库中)之后尝试有条件地对某个值执行某些操作。我目前正在使用let绑定,然后使用if语句。这与我目前的情况类似:
(defn foo [key]
(let [result (try-getting! key)]
(if result
(+ result 50)
50)))
我试图弄清楚是否有更简洁的方法来做到这一点,也许是某种组合的if-let绑定?有没有办法更好地写这个?
谢谢!
答案 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)