在我的项目中,我在不同的模块中定义了几个goops类(因此在不同的文件中)。我无法理解如何正确地从模块导出类(及其附件)。
这就是我试过的。我还尝试导出每次“slot-of-a”,正如我在评论中想知道的那样,但它不起作用。
;;;module-a.scm
(define-module (module-a)
#:use-module (oop goops)
#:export (<class-a>)) ;Have I to export "slot-of-a" too?
(define-class <class-a> ()
(slot-of-a #:accessor slot-of-a))
;;;module-b.scm
(define-module (module-b)
#:use-module (oop goops)
#:use-module (module-a)
#:export (<class-b>)) ;Have I to export "slot-of-a" here too?
(define-class <class-b> (<class-a>))
;;;main.scm
(use-modules (oop goops) (module-b))
(define obj (make <class-b>))
(set! (slot-of-a obj) 'foo) ;This causes an error
然而,我发现单独导出所有方法/插槽/附件非常尴尬,我希望能够导出整个类。