6

例如,如果我有:

(defrecord Item [name cost])

我怎么能转换["ball" 10]{:name "ball", :cost 10}

4

1 回答 1

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)用来处理。

于 2012-08-31T07:36:27.460 回答