繁体   English   中英

如何从地图填充Clojure记录?

[英]How to populate a Clojure record from a map?

是否有类似struct-map的记录? 如果没有,我是否应该使用结构(文档不鼓励使用结构)?

也许我完全在做错事? 我有一个相当复杂的功能,目前带有选项图。 我试图弄清楚哪些选项值可以接受/使用(通过将其替换为记录)。 现在,我想将其与映射中具有此信息的代码进行接口(并且在记录中包含数据的超集)。

不建议仅将记录用于“文档”-普通的旧地图更灵活,更简单,更容易。 对于文档,您仅可以添加文档字符串或注释,或创建类似(defn make-whatever [thing1 thing2])的函数。

如果仍然需要记录,则可以选择两种方式,具体取决于您使用的是Clojure 1.3版还是更高版本。 如果是这样,则(defrecord Whatever ...)还定义了map->Whatever函数,以及一个带有位置参数的->Whatever函数。 如果没有,则可以写入(into (Whatever. nil nil nil) some-map) 。nil (into (Whatever. nil nil nil) some-map) (为记录类型传递正确数量的nil)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM