获取类的插槽名称
让我们说我们有一个类
(defclass person ()
(name email age))
要获取类的槽的名称,我们使用函数 class-slots。这可以在 close-mop 系统中提供的 close-mop 包中找到。要加载正在运行的 lisp 图像,我们使用 (ql:quickload :closer-mop)
。我们还必须确保在调用类槽之前完成该类。
(let ((class (find-class 'person)))
(c2mop:ensure-finalized class)
(c2mop:class-slots class))
返回有效槽定义对象的列表 :
(#<SB-MOP:STANDARD-EFFECTIVE-SLOT-DEFINITION S/TRANSFORMATIONS::NAME>
#<SB-MOP:STANDARD-EFFECTIVE-SLOT-DEFINITION S/TRANSFORMATIONS::EMAIL>
#<SB-MOP:STANDARD-EFFECTIVE-SLOT-DEFINITION S/TRANSFORMATIONS::AGE>)