【发布时间】:2012-05-25 18:01:15
【问题描述】:
有类似struct-map 的记录吗?如果不是,我应该使用结构吗(文档不鼓励使用结构)?
也许我完全做错了?我有一个相当复杂的功能,目前需要一张选项图。我试图澄清哪些选项值是可接受/使用的(通过用记录替换它)。现在我想将它连接到在地图中包含此信息的代码(并且包含记录中数据的超集)。
【问题讨论】:
标签: data-structures clojure record
有类似struct-map 的记录吗?如果不是,我应该使用结构吗(文档不鼓励使用结构)?
也许我完全做错了?我有一个相当复杂的功能,目前需要一张选项图。我试图澄清哪些选项值是可接受/使用的(通过用记录替换它)。现在我想将它连接到在地图中包含此信息的代码(并且包含记录中数据的超集)。
【问题讨论】:
标签: data-structures clojure record
不建议仅将记录用于“文档” - 普通的旧地图更灵活、更简单、更容易。对于文档,您可以只添加一个文档字符串或注释,或者创建一个类似(defn make-whatever [thing1 thing2]) 的函数。
如果您仍然想要记录,您有几个选择,具体取决于您使用的是 clojure 1.3 版还是更高版本。如果是这样,(defrecord Whatever ...) 还定义了一个 map->Whatever 函数和一个采用位置参数的 ->Whatever 函数。如果没有,你可以写(into (Whatever. nil nil nil) some-map)(为记录类型传递正确的 nil 数)。
【讨论】: