我猜这是一个真正的初学者问题,但我无法在这里找到答案。 我的问题:我想像这样设置一个类的槽的值:
TopSecret.class
我为此写了一个小函数:
(setf (accessor class) value)
我在for循环中使用它,我在其中迭代2个列表(插槽(符号列表)和值(数字列表))并且想要设置几个插槽值的实例。
(defun set-class-slots (class slot value)
(setf (slot class) value))
我得到的错误是:
"表格中未定义的运算符(setf slot)((setf slot)#:| Store-Var-773597 |#:g773598。"
我认为问题是我的函数中的setf没有使用为输入arg提供的值。 '槽'但阅读' slot'作为运营商。
我尝试了不同的东西,符号功能,功能等,但不知道该怎么做 - 因为我也不太了解出了什么问题。
非常感谢任何帮助。
谢谢, Marleynoe
答案 0 :(得分:3)
您可以使用FDEFINITION
获取(setf XXX)
函数的函数值:
(defun set-class-slots (class slot value)
(funcall (fdefinition `(setf ,slot)) value class))