【问题标题】:How to combine a let binding and an if statment in Clojure如何在 Clojure 中结合 let 绑定和 if 语句
【发布时间】:2026-01-02 14:05:02
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

    标签: clojure


    【解决方案1】:

    if-let这个表格:

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

    【讨论】:

    • 这正是我想要的!谢谢。
    【解决方案2】:

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

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

    【讨论】: