例如我们有函数:
(defn my-fun [param]
(let [[x _] param]
x))
为什么我们使用" _"在这个例子中?
答案 0 :(得分:8)
(let [[x _] [1 2]] x)
解构序列的第一个元素并将其绑定到名称x
。它还将第二个值绑定到名称_
,但按照惯例,此名称表示可以忽略该值。
请注意,(let [[x _] [1 2]] [x _])
在技术上是有效的Clojure,但_
的语义是我们不关心该值。从编译器的角度来看,没有对该符号的特殊处理,只是人类惯例。