Определение 15.85. Функция slot-range
(slot-range <имя-класса> <имя-слота>)
Ниже приведены примеры использования функций slot-allowed-values и slot-range (см. также рис. 15.31).
Пример 15.34. Использование функций slot-allowed-values и slot-range
(clear)
(defclass A (is-a USER)
(slot x)
(slot у (allowed-integers 2 3)
(allowed-symbols foo)))
(defclass В (is-a USER)
(slot x)
(slot у (type SYMBOL))
(slot z (range 3 10)))
(slot-allowed-values A x)
(slot-allowed-values A y)
(slot-range В x)
(slot-range В у)
(slot-range В z)
Функция slot-default-value возвращает значение, по умолчанию связанное с заданным слотом. Если слот имеет динамическое значение по умолчанию, результат вычисляется в момент вызова функции. Значение false возвращается в том случае, если произошла ошибка.
Рис. 15.31.Использование функций slot-allowed-values и slot-range
Определение 15.R6. Функция slot-default-value
(slot-default-value <имя-класса> <имя-слота>)
Функция next-handlerp осуществляет проверку наличия скрытых обработчиков сообщений и возвращает значение true, если такой обработчик существует, в противном случае функция возвращает значение FALSE.
Определение 15.87. Функция next-handlerp
(next-handlerp)
Если функция next-handlerp дала положительный результат, то обнаруженный скрытый обработчик можно вызвать при помощи функции call-next-handler. Скрытому обработчику передаются те же аргументы, что и вызывающему обработчику. Обработчик может продолжать свою работу после вызова функции call-next-handler. Кроме того, возможен множественный вызов функции call-next-handler, в этом случае скрытый обработчик будет вызываться нужное количество раз. Результатом работы данной функции служит результат вызванного скрытого обработчика или значение false в случае ошибки.
Определение 15.88. Функция call-next-handler
(call-next-handler)
Для изменения набора аргументов при вызове скрытого обработчика служит функция override-next-handler. В остальном эта функция подобна предыдущей.
Дата добавления: 2021-12-14; просмотров: 252;