我想这是一个真正的初学者问题,但我在这里找不到答案。我的问题:我想像这样设置一个类的插槽的值:
(setf (accessor class) value)
我为此写了一个小函数:
(defun set-class-slots (class slot value)
(setf (slot class) value))
我在 for 循环中使用它,在其中我正在遍历 2 个列表(槽(符号列表)和值(数字列表)),并希望将实例的多个槽设置为值。
(loop for slot in slots for value in values do
(set-class-slots <myclass> slot value)
)
我得到的错误是:
“未定义的运算符(setf 插槽)形式为((setf 插槽)#:|Store-Var-773597|#:g773598。”
我认为问题在于我的函数中的 setf 没有使用为输入 arg 提供的值。'slot' 但读取 'slot' 作为运算符。
我尝试了不同的东西,符号函数,函数调用等,但不知道该怎么做——因为我也不太明白出了什么问题。
任何帮助将不胜感激。
谢谢,马利诺