Копирование объекта

Так же, как и для изменения, CLIPS предоставляет два предопределенных системных обработчика для создания копии объекта: direct-duplicate и message-duplicate.

Определение 11.14. Синтаксис системных обработчиков direct-duplicate и message-duplicate

(defmessage-handler USER direct-duplicate primary

(?new-instance-name?slot-override-expressions))

(defmessage-handler USER message-duplicate primary

(?new-instance-name?slot-override-expressions)

Обработчик direct-duplicate производит копирование объекта без использования сообщений put- для установки значения заданных слотов. Значения слота из первичного объекта непосредственно копируются в заданные слоты нового объекта. Если имя нового объекта совпадает с уже существующим именем объекта, то существующий объект удаляется без применения сообщений. Это сообщение используется функциями duplicate-instance и active-duplicate-instance.

Обработчик message-duplicate копирует объект, используя сообщения. Значения слота из первичного объекта копируются в заданные слоты нового объекта с применением сообщений put- и get-. Если имя нового объекта совпадает с уже существующим именем объекта, то существующий объект удаляется с помощью сообщения delete. После создания нового объекта ему посылается сообщение init. Это сообщение используется функциями message-duplicate-instance и active-message-duplicate-instance.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: