ToC | DocOverview | CGDoc | RelNotes | Index | PermutedIndex
| Allegro CL

| ANSI Common Lisp 7 Objects 7.7 Dictionary of Objects
7.7.14 slot-value | Function
  Syntax: slot-value object slot-name value Arguments and Values: object - an object. name - a symbol. value - an object. Description: The function slot-value returns the value of the slot named slot-name in the object. If there is no slot named slot-name, slot-missing is called. If the slot is unbound, slot-unbound is called. The macro setf can be used with slot-value to change the value of a slot. Examples:
       (defclass foo ()
         ((a :accessor foo-a :initarg :a :initform 1)
          (b :accessor foo-b :initarg :b)
          (c :accessor foo-c :initform 3)))
       #<STANDARD-CLASS FOO 244020371>
       (setq foo1 (make-instance 'foo :a 'one :b 'two))
       #<FOO 36325624>
       (slot-value foo1 'a)   ONE
       (slot-value foo1 'b)   TWO
       (slot-value foo1 'c)  3
       (setf (slot-value foo1 'a) 'uno)   UNO
       (slot-value foo1 'a)   UNO
       (defmethod foo-method ((x foo))
         (slot-value x 'a))
       #<STANDARD-METHOD FOO-METHOD (FOO) 42720573>
       (foo-method foo1)   UNO
  Exceptional Situations: If an attempt is made to read a slot and no slot of the name slot-name exists in the object, slot-missing is called as follows:
       (slot-missing (class-of instance)
                     instance
                     slot-name
                     'slot-value)
  (If slot-missing is invoked, its primary value is returned by slot-value.) If an attempt is made to write a slot and no slot of the name slot-name exists in the object, slot-missing is called as follows:
       (slot-missing (class-of instance)
                     instance
                     slot-name
                     'setf
                     new-value)
(If slot-missing returns in this case, any values are ignored.) The specific behavior depends on object's metaclass. An error is never signaled if object has metaclass standard-class. An error is always signaled if object has metaclass built-in-class. The consequences are unspecified if object has any other metaclass--an error might or might not be signaled in this situation. Note in particular that the behavior for conditions and structures is not specified. See Also: slot-missing, slot-unbound, with-slots Notes: Although no implementation is required to do so, implementors are strongly encouraged to implement the function slot-value using the function `slot-value-using-class` described in the Metaobject Protocol. Implementations may optimize slot-value by compiling it inline. Allegro CL Implementation Details: None.

© Franz Inc. All Rights Reserved - File last updated 2022-07-25