我有以下 EDN
{
:test #xyz/getXyz #abc/getAbc #fgh/getFgh "sampleString"
}
在 Clojure 中,我为每个内部调用 java 函数的标记元素定义了实现。我有一个要求,我需要将 #abc/getAbc 和 #fgh/getFgh 的返回值作为单独的参数传递给 #xyz/getXyz。在我当前的实现中,#fgh/getFgh 使用“sampleString”调用。随着#fgh/getFgh 的输出,#abc/getAbc 被调用。并通过其输出 #xyz/getXyz 被调用。我的要求是#xyz/getXyz 应该以#abc/getAbc 和#fgh/getFgh 的返回值作为单独的参数来调用。
Clojure 实现
(defn getXyz [sampleString]
(.getXyz xyzBuilder sampleString)
)
(defn getAbc [sampleString]
(.getAbc abcBuilder sampleString)
)
(defn getFgh [sampleString]
(.getFgh fghBuilder sampleString)
)
(defn custom-readers []
{
'xyz/getXyz getXyz
'xyz/getAbc getAbc
'xyz/getFgh getFgh
}
)
我想将 getXyz 修改为
(defn getXyz [abcReturnValue fghReturnValue]
(.getXyz xyzBuilder abcReturnValue fghReturnValue)
)