【发布时间】:2020-02-26 17:21:20
【问题描述】:
我正在使用 emacs,+slime+sbcl。
当我通过 slime-inspector 检查一个类/对象时,我可以提升一个类层次结构。 但是如何浏览特定类的子类? 有粘液功能(或其他方式)吗?
【问题讨论】:
标签: common-lisp clos
我正在使用 emacs,+slime+sbcl。
当我通过 slime-inspector 检查一个类/对象时,我可以提升一个类层次结构。 但是如何浏览特定类的子类? 有粘液功能(或其他方式)吗?
【问题讨论】:
标签: common-lisp clos
是的,它应该出现在检查器的 DIRECT-SUBCLASSES 插槽中。
如果你没有看到它,那可能是因为你的 Slime 检查器并不花哨:
(setq slime-contribs '(slime-fancy))
或者只是调用 M-x slime-enable-contrib 后跟 fancy,它可以启用所有花哨的功能(技术上 fancy-inspector 应该足够了)。
您也可以使用 Closer MOP 在您的程序中执行此操作:
(closer-mop:class-direct-subclasses (find-class 'number))
=> (#<BUILT-IN-CLASS COMMON-LISP:COMPLEX> #<BUILT-IN-CLASS COMMON-LISP:REAL>)
【讨论】: