Ree*_*pca 9 struct class common-lisp clos
我对结构的理解是它有插槽来存储数据,具有类型,具有make-X和插槽访问器功能,并且可以通过方法专门处理(因为它具有类型).
我对一个类的理解是它具有所有相同和多重继承.这个问题的最佳答案表明结构可以具有单一继承,并且CLOS的初始实现比结构"慢得多".
根据人们如何谈论CLOS和结构,我认为必须存在其他一些差异,但我的琐碎谷歌搜索却毫无结果.所以我问:CLOS和结构之间有什么实际区别?
Rai*_*wig 15
结构
结构更原始.它们提供了通常被称为编程语言的记录.它们是在课前发明的.1984年CLtL1(第一本描述Common Lisp的书)已经有了结构,后来增加了一个名为CLOS的标准对象系统.结构提供
DEFSTRUCT有用的补充:
限制:
扩展
CLOS课程
CLOS是在80年代中期/晚期基于两个早期的对象系统(Flavors和LOOPS)发明的.它提供:
DEFCLASS局限性:
DEFCLASS 定义不是很简洁扩展
Common Lisp
在某些情况下,Common Lisp标准没有说明应该如何实现功能:结构,类,甚至可能是其他东西.例子是流和条件.如果Common Lisp实现使用CLOS,那通常是一个好兆头(为了增加灵活性).