Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Пример 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 в случае ошибки.
|