【发布时间】:2015-11-09 08:41:21
【问题描述】:
我对使用 CLOS 很陌生。在这里,我写了一种使用 CLOS 定义队列的可能方法:
(defclass Queue ()
((queue-size
:reader queue-size
:initarg :queue-size
:initform (error "Provide a queue-size when initialising a Queue")
:type number)
(elements
:accessor elements
:initform (make-array queue-size :initial-element nil))
(put-ptr
:accessor put-ptr
:initform 0
:type number)
(get-ptr
:accessor get-ptr
:initform 0
:type number)))
如您所见,我使用插槽queue-size 的值来制作插槽elements 中的数组。但是,不幸的是,这给了我以下错误:
*** - DEFAULT-ELEMENTS: variable QUEUE-SIZE has no value
正如我所说,我对 CLOS 很陌生。有什么办法我仍然可以做到这一点?是否可以覆盖某种初始化方法?如果是,我该怎么做?
【问题讨论】:
标签: lisp common-lisp clos