【发布时间】:2016-09-18 20:05:48
【问题描述】:
According to docs dir 仅列出“公共”变量。
实际上,它不会显示自己,并且可能在当前命名空间中不可用:
user=> (dir user)
nil
user=>
user=>
user=> (in-ns 'foo)
#<Namespace foo>
foo=>
foo=>
foo=> (dir foo)
CompilerException java.lang.RuntimeException: Unable to resolve symbol: dir in this context, compiling:(NO_SOURCE_PATH:17)
还有哪些其他(非公开)类型的名称/变量? (这些可能是 Java 类型?)如何列出这些非公共名称?它们是如何在启动时导入命名空间(或一些“默认情况”命名空间)的?在运行时如何搜索默认命名空间?
例如在 Python 中:dir() 列出当前命名空间中的所有内容,如果未找到引用的变量,则在 dir(__builtins__) 中进行检查。
【问题讨论】:
标签: clojure namespaces