11

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

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

4

1 回答 1

20

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

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

于 2012-05-25T18:18:48.430 回答