保存 CLOS 对象
Saving CLOS objects
将任何 Common Lisp 结构对象保存到文件(可读)似乎相对简单
(defun save-structure-object (object filename)
(with-open-file (stream filename :direction :output
:if-exists :supersede)
(with-standard-io-syntax (print object stream))))
然而,对于 CLOS 对象实例,Make clos objects printable in lisp 处的 post 表示更复杂的配方。
首先,关于 closer-mop 的评论是否与保存 clos class 实例的更简单方法有关?
其次,那里提供的代码是否作为打印任何 clos 实例的通用实用程序呈现?
Closer to MOP 可以避免您所指的 post 中 read-time 条件句的危险纠结。一般来说,使用许多人使用的 OOTB 解决方案比随机的临时黑客攻击更安全——你自己的或别人的。
在 closer-mop
出现之前,我写了自己的 CLOS/MOP compatibility layer and CLOS object i/o。我建议您使用它而不是您引用的 SO 答案中的代码。
将任何 Common Lisp 结构对象保存到文件(可读)似乎相对简单
(defun save-structure-object (object filename)
(with-open-file (stream filename :direction :output
:if-exists :supersede)
(with-standard-io-syntax (print object stream))))
然而,对于 CLOS 对象实例,Make clos objects printable in lisp 处的 post 表示更复杂的配方。
首先,关于 closer-mop 的评论是否与保存 clos class 实例的更简单方法有关?
其次,那里提供的代码是否作为打印任何 clos 实例的通用实用程序呈现?
Closer to MOP 可以避免您所指的 post 中 read-time 条件句的危险纠结。一般来说,使用许多人使用的 OOTB 解决方案比随机的临时黑客攻击更安全——你自己的或别人的。
在 closer-mop
出现之前,我写了自己的 CLOS/MOP compatibility layer and CLOS object i/o。我建议您使用它而不是您引用的 SO 答案中的代码。