Clojure的解构是什么意思?

sri*_*ram 6 clojure

我是一个Java和学习clojure.

什么是clojure的彻底解构?

我可以看到这篇博客说:

最简单的解构示例是分配向量的值.

user=> (def point [5 7])
#'user/point

user=> (let [[x y] point]
         (println "x:" x "y:" y))
x: 5 y: 7
Run Code Online (Sandbox Code Playgroud)

他的意思是assigning the values of a vector什么?什么是真正的用途?

提前致谢

Bar*_*mar 2

point是一个包含值向量的变量。[x y]是变量名的向量。

当您分配point给时[x y]解构意味着每个变量都被分配到值中的相应元素。

这只是一种更简单的写法:

(let [x (nth point 0) y (nth point 1)]
    (println "x:" x "y:" y))
Run Code Online (Sandbox Code Playgroud)

请参阅Clojure let 绑定表单,了解使用解构的另一种方法。