如何指定类别插槽的类型

时间:2019-07-02 05:19:58

标签: class common-lisp

defclass表达式中插槽上的:type类型说明符是什么意思?它似乎与defstruct中的工作方式不同:

* (defclass counter ()
    ((value :initform 0
            :type (integer 0 *)
            :accessor value)))
#<STANDARD-CLASS COMMON-LISP-USER::COUNTER>
* (defparameter *c* (make-instance 'counter))
*C*
* (value *c*)
0
* (decf (value *c*))
-1
* (value *c*)
-1

(decf (value *c*))为什么不产生错误?

0 个答案:

没有答案