Clojure编程:元数据、Java调用、注释与流程控制
1. 元数据(Metadata)
元数据是关于数据的数据。在Clojure中,元数据与对象的逻辑值正交。例如,一个人的姓和名是普通数据,而一个人对象可以序列化为XML这一事实与这个人本身无关,因此属于元数据。同样,一个人对象需要刷新到数据库这一事实也是元数据。
Clojure语言本身在很多地方使用元数据。例如,变量有一个元数据映射,包含文档、类型信息和源信息。以下是 str
变量的元数据:
(meta #'str)
{:ns #object[clojure.lang.Namespace 0x62ccf439 "clojure.core"],
:name str,
:added "1.0",
:file "clojure/core.clj",
:line 544,
:column 1,
:tag java.lang.String,
:arglists ([] [x] [x & ys]),
:doc
"With no args, ...[etc]"}
常见的元数据键及其用途如下表所示:
| Key | Used For | Key | Used For |
| — | — | — | — |
| :ns | Namespace | :column | Source column number |
| :name | Local name | :tag | Expected argument or return type |