如何在另一个符号引用符号时访问该符号的值

zca*_*ate 3 clojure

这是一个简单的例子来说明我的意思:

> (def code "(def some-code [1 2 3])")
> (def data (read-string code))
> (def var  (eval data))
Run Code Online (Sandbox Code Playgroud)

使用println:

> (println var)
;; => #'example.system/some-code

> (println some-code)
;; => [1 2 3]
Run Code Online (Sandbox Code Playgroud)

现在var包含一个引用some-code,[1 2 3]如果我有我如何检索var?它的用法就像这个函数:

> (return var) ;=> [1 2 3]
Run Code Online (Sandbox Code Playgroud)

sou*_*eck 6

一种方法是使用var-get

user=> (var-get var)
[1 2 3]
Run Code Online (Sandbox Code Playgroud)