您需要将包含clojure.datafy/nav
的元数据作为键(以及您的nav
函数作为值)添加到将传递给nav
的集合中,即内部map。
但是,值得考虑的是完整上下文(对于REBL和其他使用datafy
和nav
的工具):您开始于“东西” —— 首先通过这些工具进行datafy
,生成可以进行导航的“纯数据”,这也可以通过get
等方法以及通过nav
。
因此,您从“东西” ---->datafy
---- “纯数据”(加上nav
元数据)。
然后从"纯净数据" -> get
-> "新的纯净数据",或者从"纯净数据" -> nav
-> "与新的纯净数据对应的新事物"。
因此,你可能希望从支持datafy
元数据的地图开始,这样当REBL等数据结构化时,结果就是可导航的 - 而且可以作为REBL等显示的一部分进行增强,添加额外的键和/或元数据。
如果你从纯净数据(带有nav
元数据)开始,对它调用datafy
应该是恒等函数,因此你可以在原始地图中加入nav
元数据。我个人认为从datafy
元数据开始更好(让实现添加nav
元数据),这样事物 -> datafy
-> 数据 -> nav
-> 新事物模式的表达更明确。这是我在clojure.java.jdbc
和next.jdbc
中采用的方法 - 我在2018年12月关于datafy
/nav
的方法撰写了博客。