鉴于这可以按我的预期工作:
(do
(println (resolve 'a)) ; nil
(def a "a")
(println (resolve 'a))) ; #'user/a
我想了解为什么这不会:
(future
(println (resolve 'b)) ; #'user/b (shouldn't it be still undefined at this point?)
(def b "b")
(println (resolve 'b))) ; #'user/b
我也想知道这是否是一个合适的解决方案(不完全解决同样的问题,但在我的上下文中做同样的工作):
(def c (atom nil))
(future
(println @c) ; nil
(reset! c "c")
(println @c)) ; c