如果我用
开始一个程序(ns dailyprogrammer.core
(:gen-class)
(:require [dailyprogrammer.other :refer :all]))
然后稍后尝试使用hello
或other
解析resolve
内定义的函数ns-resolve
,如下所示:
(resolve (symbol "hello"))
(ns-resolve *ns* (symbol "hello"))
我得到了nil。但我可以简单地致电
(hello)
哪个会奏效。为什么我不能使用任何解析功能?
答案 0 :(得分:4)
ns-resolve
不查找*ns*
中可见的符号,它会查找*ns*
中定义的符号。 :refer :all
使得其他ns中的所有符号在您的定义中都可见,它不会将其变量移动或复制到您的ns中。