【问题标题】:What does an "_" mean in Clojure language in a let binding? [duplicate]在 Clojure 语言中 let 绑定中的“_”是什么意思? [复制]
【发布时间】:2025-12-07 11:35:01
【问题描述】:

例如我们有函数:

(defn my-fun [param]
      (let [[x _] param]
        x))

为什么我们在这个例子中使用“_”?

【问题讨论】:

    标签: clojure


    【解决方案1】:

    (let [[x _] [1 2]] x) 解构序列的第一个元素并将其绑定到名称x。它还将第二个值绑定到名称_,但按照惯例,此名称意味着可以忽略该值。 请注意,(let [[x _] [1 2]] [x _]) 在技术上是有效的 Clojure,但_ 的语义是我们只是不关心该值。从编译器的角度来看,该符号没有特殊处理,只是人类约定。

    【讨论】: