Clojure 解构与函数创建指南
1. 解构概述
解构是由 let 提供的一项功能,可用于任何隐式使用 let 的表达式,如 fn 、 defn 、 loop 等。解构主要有两种类型:顺序解构和映射解构。
1.1 顺序解构
顺序解构适用于任何顺序集合,包括:
- Clojure 列表、向量和序列
- 实现 java.util.List 的任何集合(如 ArrayList 和 LinkedList )
- Java 数组
- 字符串,会被解构为其字符
以下是一个基本的顺序解构示例:
(def v [42 "foo" 99.2 [5 12]])
(let [[x y z] v]
(+ x z))
;= 141.2
这等同于:
(let [x (nth v 0)
y (nth v 1)
z (nth v 2)]
(+ x z))
;= 141.2
Python 和 Ruby 也有类似的功能:
v = [42, "foo", 99.2,
超级会员免费看
订阅专栏 解锁全文
23

被折叠的 条评论
为什么被折叠?



