ClojureScript不需要Clojure的defstruct背后的原因是什么?

时间:2014-04-18 05:09:34

标签: clojure clojurescript

ClojureScript不支持

defstruct - 它似乎是设计的。现在它可能是Clojure语言的一个被弃用的部分,而ClojureScript的设计者只是希望每个人都继续前进。 (但这是我的推测)。

我的问题是: ClojureScript背后不需要Clojure的defstruct的原因是什么?

1 个答案:

答案 0 :(得分:5)

defstruct 在语言中被有效弃用,有利于defrecord。我们应该继续(基于JVM)Clojure,所以我希望Clojurescript是相同的。请参阅以下内容:

Clojure: data structures:"注意:记录可以更好地为StructMaps提供大量服务。"

steveminer的评论

ClojureDocs: defstruct:"结构已经过时了。改为使用记录。见defrecord。"

即将到来的 Clojure的喜悦,第2版。 Fogus和Houser的(预发布V9版)说"随着defrecord的出现,对结构的需求几乎已经消除,因此本书不涉及结构。" (第322页)

另请注意 Programming Clojure ,第2版。由Halloway和Bedra封面defrecord但不是defstruct(尽管有一些过时的结构提及 - 可能是第一版中不小心留下的。)。

我猜这些天所有酷人都在使用defrecord。 : - )

Alex Miller's answer to"我应该在clojure中使用defrecord?"我很好地讨论了defrecord的优点(和缺点),尽管他主要不是将它与defstruct进行比较。