在 Common Lisp 中,如何覆盖 CLOS 类的默认字符串表示形式,以便调用format
或princ
打印可理解的内容,即使该类的对象嵌入到其他类型(例如列表或数组)中?
例如,如果我(format t "~a~%" x)
在 x 持有我的解决方案类的实例时调用,我希望它打印类似#<SOLUTION genes: #(1 2 3) scores: #(4 5) rank: 6>
而不是#<SOLUTION {BB7CD31}>
.
到目前为止,我已经设法弄清楚的是编写自定义函数来处理我知道将包含此类实例的打印结构,但这很乏味。肯定 Lisp 提供了一些免费获得此功能的方法吗?