たとえば、私が持っていた場合:
(defrecord Item [name cost])
どうすれば変換でき["ball" 10]
ます{:name "ball", :cost 10}
か?
たとえば、私が持っていた場合:
(defrecord Item [name cost])
どうすれば変換でき["ball" 10]
ます{:name "ball", :cost 10}
か?
user=> (defrecord Item [name cost])
user=> (apply ->Item ["ball" 10])
#user.Item{:name "ball", :cost 10}
何が起こっているのか簡単に説明します。(->Item "ball" 10)
は、指定された引数からレコードを作成するための構文の1つです。と同じ(Item. "ball" 10)
です。あなたの場合、あなたは引数のベクトルを持っているので、私たちは(apply fn args-vector)
を扱うために使用します。