例如,如果我有:
(defrecord Item [name cost])
Run Code Online (Sandbox Code Playgroud)
我怎么能转换["ball" 10]成{:name "ball", :cost 10}?
Ale*_*yev 15
user=> (defrecord Item [name cost])
user=> (apply ->Item ["ball" 10])
#user.Item{:name "ball", :cost 10}
Run Code Online (Sandbox Code Playgroud)
简要解释发生了什么.(->Item "ball" 10)是从给定参数创建记录的语法之一.它是一样的(Item. "ball" 10).在你的情况下,你有参数的矢量,所以我们(apply fn args-vector)用来处理.