首页 > 解决方案 > 在 Common Lisp 中的类名上调用类分配的插槽

问题描述

有没有办法在类的名称而不是实例上调用 :class 分配的插槽?就像是:(class-alloc-slot 'name-of-the-class)

标签: classlispcommon-lispclosmeta-object-protocol

解决方案


LispWorks:

CL-USER 6 > (defclass foo () ((bar :allocation :class :initform :baz)))
#<STANDARD-CLASS FOO 402005B3CB>

CL-USER 7 > (make-instance 'foo)
#<FOO 4020240C33>

CL-USER 8 > (class-prototype (find-class 'foo))
#<FOO 402005EB73>

CL-USER 9 > (slot-value * 'bar)
:BAZ

将 CLOSER-MOP 用于便携式 MOP 功能。


推荐阅读