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)
这似乎不太清楚......
不是现在。
但是您可以忘记命名参数并使用扩展映射:
(defrecord Person [])
(Person. nil {:age 99 :name "bob"})
Run Code Online (Sandbox Code Playgroud)
我个人认为,当您有大量可能的字段时,这是使用记录的最简单方法。