[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
slot-missing
- To: Common-Lisp-Object-System@Sail.stanford.edu
- Subject: slot-missing
- From: Bobrow.pa@Xerox.COM
- Date: 24 Sep 87 09:27 PDT
slot-missing
If an attempt is made to access a slot in an instance of a standard
class, and the name of the slot provided is not a name of a slot in that
class, then the generic function slot-missing is invoked.
slot-missing class instance slot-name operation
&optional new-value
The required arguments to slot-missing are the class of the instance
being accessed, the instance, the slot-name, a symbol that indicates the
operation which caused the trap to slot-missing. The optional argument
to slot-missing is used when the operation is attempting to set the
value of the slot.
The generic function slot-missing is not intended to be called by
programmers. Programmers are expected to write methods for it.
The generic function slot-missing is called by
slot-value-using-class
(setf slot-value-using-class)
slot-bound-p
For each of these operations the corresponding symbol for the operation
argument is
slot-value
setf
slot-boundp
The default method on slot-missing signals an error.
This set of arguments (including the class of the instance) facilitates
defining methods on the metaclass for handling slot-missing. For
example, this enables an easy implementation of dynamic slots; that is:
(defmethod slot-missing ((class dynamic-class) obj slot operation
&optional nv)
(ecase operation
(slot-value (get-dynamic-slot obj slot))
(setf (set-dynamic-slot obj slot nv)
(slot-boundp (exists-dynamic-slot-p obj slot))))
- Follow-Ups:
- slot-missing
- From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>