我正在尝试使用set!修改var的本地线程绑定--但是这些更改似乎没有生效。请考虑以下几点:
(def ^:dynamic *foo* :root)
(binding [*foo* :thread-local]
(let [val (doto :new
#(set! *foo* %))]
[val *foo*]))我期望结果是[:new :new];相反,它的计算结果是[:new :thread-local]。我在这里误解了什么?
发布于 2012-06-15 15:37:27
您的doto语法错误。
(binding [*foo* :thread-local]
(let [val (doto :new (#(set! *foo* %)))]
[val *foo*]))请注意附加的括号。
https://stackoverflow.com/questions/11046246
复制相似问题