defstruct
- 它似乎是设计的。现在它可能是Clojure语言的一个被弃用的部分,而ClojureScript的设计者只是希望每个人都继续前进。 (但这是我的推测)。
我的问题是: ClojureScript背后不需要Clojure的defstruct的原因是什么?
答案 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
进行比较。