Mar*_*ark 1 lisp inheritance common-lisp clos
我想知道一种方法,如何检查一个对象是否属于某个类,或从中派生出来.例如:
(defclass a nil
nil)
(defclass b (a)
nil)
(defparameter *foo* (make-instance 'b))
(my-function *foo* 'a) ; => t
(my-function *foo* 'b) ; => t
Run Code Online (Sandbox Code Playgroud)
或者,还将理解返回给定对象(或类)的所有基类的列表的函数.
用途typep:
CL-USER 4 > (typep *foo* 'a)
T
CL-USER 5 > (typep *foo* 'b)
T
Run Code Online (Sandbox Code Playgroud)