我需要创建一个函数make-numbers,它创建一个类号的实例:
(defclass numbers ()
((x :initform 0)
(y :initform 0)))
Imput应该是这样的:(make-numbers 2 8)
我开始:(defun make-numbers (new-x new-y) (....
,但我不知道如何继续。我整天都试过,没有结果。最后,我需要计算这两个数字。
答案 0 :(得分:2)
我建议您为广告位添加:initarg
个关键字:
(defclass numbers ()
((x :initform 0 :initarg :x)
(y :initform 0 :initarg :y)))
然后从您的函数中调用make-instance:
(defun make-numbers (new-x new-y)
(make-instance 'numbers :x new-x :y new-y))
这样,您就不必在slot-value上使用setf
来初始化您实例的广告位。