为什么以下代码无法通过编译?
(defn testit [asym] (var asym))
错误是:
CompilerException java.lang.RuntimeException: Unable to resolve var: asym in this context, compiling:(NO_SOURCE_PATH:1)
答案 0 :(得分:2)
asym
没有var
,它是本地的;在这种情况下,您定义的函数的唯一参数是testit
var的值。
如果您想从该功能返回asym
:
(defn testit [asym] asym)
如果asym
是一个用于命名要返回的var的符号,请使用resolve
:
(defn testit [asym] (resolve asym))
一般说明:(var x)
是与阅读器语法#'x
对应的展开special form。