clojure defrecord命名参数?

Kev*_*vin 7 clojure

defrecord是否支持命名参数?即如果我有这样的事情:

(defrecord Person [name age])
Run Code Online (Sandbox Code Playgroud)

我可以这样做:

(Person. {:age 99 :name "bob"})
(Person. :age 99 :name "bob")
Run Code Online (Sandbox Code Playgroud)

我通过谷歌搜索看到的唯一的东西是这样的东西:

(Person. "bob" 99)
Run Code Online (Sandbox Code Playgroud)

这似乎不太清楚......

mik*_*era 0

不是现在。

但是您可以忘记命名参数并使用扩展映射:

(defrecord Person [])

(Person. nil {:age 99 :name "bob"})
Run Code Online (Sandbox Code Playgroud)

我个人认为,当您有大量可能的字段时,这是使用记录的最简单方法。