Clojure - 命名空间



命名空间在 Clojure 中用于将类区分到不同的逻辑空间,就像在 Java 中一样。考虑以下语句。

(:require [clojure.set :as set])

在上面的语句中,‘clojure.set’是一个命名空间,它包含程序中要使用的各种类和方法。例如,上述命名空间包含一个名为 map-invert 的函数,用于反转键值映射。除非我们明确告诉程序包含此命名空间,否则我们无法使用此函数。

让我们看看命名空间可用的不同方法。

序号 方法和描述
1 *ns*

用于查看当前命名空间。

2 ns

用于创建一个新的命名空间并将其与正在运行的程序关联。

3 alias

在当前命名空间中添加对另一个命名空间的别名。参数是两个符号:要使用的别名和目标命名空间的符号名称。

4 all-ns

返回所有命名空间的列表。

5 find-ns

查找并返回特定命名空间。

6 ns-name

返回特定命名空间的名称。

7 ns-aliases

返回与任何命名空间关联的别名。

8 ns-map

返回命名空间的所有映射的映射。

9 un-alias

返回一个映射,该映射只包含map中键在keys中的条目。

广告