元数据
元数据是“关于数据的数据”。Clojure支持用其他数据来标记数据(例如映射、列表和向量),而不改变被标记数据的值。这意味着具有不同元数据的相同值在比较时仍是相等的。
元数据总是映射
用法:
-
使用with-meta绑定
上图定义了变量font-meta,绑定了元数据信息:meta1和:meta2 -
使用简写方法:**^{}**读取器宏来定义元数据
上述两种定义元数据的方法除了形式上的区别外,另一个区别在于,读取器宏定义的元数据在读取时加入,而不是在求值时加入。 -
检查与值关联的元数据:meta函数
-
从有元数据的值中创建新值,元数据将复制到新值里
-
函数和宏在定义中包含元数据
将元数据绑定到函数,不是绑定到函数本身,而是绑定到函数名,因此需要将函数名变量传递给meta函数,如上图