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