在我的 Clojure 代码中,我想在循环中使用 Java 对象的副作用方法。我的意图是将 Java 对象的多个参数设置为我存储在地图中的值:
(def params {
:param1 "value1"
:param2 "value2"
})
如果我直接设置param1
,"value1"
它工作正常:
(.setParam object (str :param1) "value1")
但是,如果我想通过 using 遍历params
强制求值的地图doseq
,Java 对象保持不变:
(doseq [[param value] params] (.setParam object (str param) value))
如何遍历params
地图并使用副作用setParam
方法使Javaobject
发生变异?
我相信这可能是一个初学者错误,对于更有经验的 Clojure 用户来说很容易解决。