defclass后export哪些符号的问题。

1 view
Skip to first unread message

刘滔

unread,
Mar 5, 2012, 12:43:24 AM3/5/12
to lis...@googlegroups.com
举个例子,我定义了一个名为foo的package,在其中定义了一个类user,如下

(defclass user ()
  ((name :initarg :name :reader user-name)))

并且导出了user这个符号。然后在另一个名为bar的package中,定义时:use了foo这个包,那么如果我在bar这个包中需要取这个类中的name这个slot的时候,似乎不可以这么写

(defvar instance (make-instance 'user :name "foobar"))

(with-slots (name) instance
  (print name))

这样子似乎会抛出错误,好像是需要从foo这个包中同时导出name这个符号啊?是不是呢?抱歉,问得有点乱……

--
Liutos Love Linux LaTeX Lisp Ling

我的博客,纪念我死去的GAE

Xiaofeng Yang

unread,
Mar 5, 2012, 2:03:52 AM3/5/12
to lis...@googlegroups.com

是的,name也要导出。不管用任何形式。不导出就有要用::

> --
> Lisp-cn(Lisp中文用户组)
> CLUG http://lisp.org.cn

Reply all
Reply to author
Forward
0 new messages