例如,如果我有:
(defrecord Item [name cost])
如何将["ball" 10]
转换为{:name "ball", :cost 10}
?
答案 0 :(得分:15)
user=> (defrecord Item [name cost])
user=> (apply ->Item ["ball" 10])
#user.Item{:name "ball", :cost 10}
简要说明发生了什么。 (->Item "ball" 10)
是从给定参数创建记录的语法之一。它与(Item. "ball" 10)
相同。在你的情况下,你有参数的向量,所以我们使用(apply fn args-vector)
来处理。