Грани значений по умолчанию

Грани default и default-dynamic применяются для задания начальных зна­чений присваиваемых слотам при создании экземпляра класса или его ини­циализации. Если эта грань не использована при определении слота, то в качестве значения по умолчанию берется значение, заданное в грани ограничений слота (см. подразд. "Грань ограничений" данного раздела). Значе­ния по умолчанию назначаются без использования сообщений, в отличие от переопределения слота при вызове make-instance (см. разд. 11.5.1).

Грань default задает статическое значение по умолчанию — некоторое выра­жение, вычисленное однажды, в момент создания класса. Полученный результат вычислений сохраняется в определении класса. Этот результат присваивается соответствующему слоту, когда создается новый экземпляр объекта. Если в качестве выражения указано ключевое слово?DERIVE, то значением по умолчанию будет значение, заданное в грани ограничений слота (см. подразд. "Грань ограничений" этого раздела). По умолчанию значение грани default равно (default?DERIVE). Если в качестве выражения используется ключевое слово?NONE, то слоту не будет присваиваться значение по умолчанию. В случае применения этого ключевого слова, при создании объекта в функции make-instance необходимо переопределить значения слотов. Заметьте, что в CLIPS 6.0 и более старших версиях слот имеет значение по умолчанию, даже если оно явно не задано (в отличие от CLIPS 5.1). Это может быть причиной различного поведения программ, написанных на CLIPS 5.1 и использующих функцию initialize-instance. Ключевое слово?NONE можно указывать для обеспечения работы программ, написанных на CLIPS, начиная с версии 6.0, в среде CLIPS версии 5.1.

Грань default-dynamic задает динамическое значение по умолчанию — некоторое выражение, вычисляемое каждый раз при создании экземпляра объекта данного класса. Результат вычислений назначается соответствующему слоту. Работу грани default-dynamic можно продемонстрировать на примере 11.14.


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



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