评论者:hiredman
clojure 的文档系统包含两部分
docstrings 附在对象的元数据上
doc 宏(和一些其他工具)从对象中读取 docstrings 并显示它们
这两部分共同工作,没有 doc 宏,docstrings 只是无用的注释,会占用运行时内存,没有 docstrings,doc 宏也就没有用途。
docstrings 主要挂在 var 元数据和命名空间元数据上。
对于多方法(multimethods)和协议函数,docstrings 挂在 vars 上。
对于多方法和协议的实现,没有独立的 vars 来挂载文档信息,用户根本不知道如何查找这些 docstrings。
因此,为了在 defmethods 和协议实现中支持文档,需要增强 doc 和进行一些设计工作,所以创建一个设计讨论的维基页面对此会很有帮助。