私はCLOSの使用にかなり慣れていません。ここでは、CLOS を使用して Queue を定義する 1 つの可能な方法を書きました。
(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にかなり慣れていません。これを行う方法はありますか?ある種の init メソッドを上書きすることは可能ですか? はいの場合、どうすればよいですか?