【问题标题】:How to populate a Clojure record from a map?如何从地图中填充 Clojure 记录?
【发布时间】:2012-05-25 18:01:15
【问题描述】:

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

也许我完全做错了?我有一个相当复杂的功能,目前需要一张选项图。我试图澄清哪些选项值是可接受/使用的(通过用记录替换它)。现在我想将它连接到在地图中包含此信息的代码(并且包含记录中数据的超集)。

【问题讨论】:

    标签: data-structures clojure record


    【解决方案1】:

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

    如果您仍然想要记录,您有几个选择,具体取决于您使用的是 clojure 1.3 版还是更高版本。如果是这样,(defrecord Whatever ...) 还定义了一个 map->Whatever 函数和一个采用位置参数的 ->Whatever 函数。如果没有,你可以写(into (Whatever. nil nil nil) some-map)(为记录类型传递正确的 nil 数)。

    【讨论】:

      猜你喜欢
      • 2015-02-21
      • 1970-01-01
      • 2020-10-11
      • 2020-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-27
      • 1970-01-01
      相关资源
      最近更新 更多