Другие предложения можно хотеть рассмотреть:
Обычно можно использовать: initform, чтобы присвоить слоту значение по умолчанию. С defclass невозможно вычислить initforms просто на основе других слотов. Есть и другие сложности, поэтому: initform следует использовать для простых форм.
Примеры
устанавливают слот z объекта 3d-вектора на 0,0
устанавливают список окон в объекте экрана на NIL
установить слот «ключевой функции» в объекте на # »identity
установить слот« строка отчета »в сообщении об ошибке на« произошла ошибка »
Следует выполнить любую другую более сложную настройку значений слота в методе. Если объект необходимо настроить автоматически после MAKE-INSTANCE, используйте метод: AFTER для INITIALIZE-INSTANCE.
Чтобы еще больше усложнить ситуацию, есть также опция класса : default-initargs .
Лично я использую : default-initargs
и : initform
как ярлыки, когда полная мощность after-метода для initialize-instance
не требуется, и : initform
, когда слот не иметь : initarg
.