Открыть главное меню

Изменения

ТОМ: язык программирования

2991 байт добавлено, 11:48, 9 февраля 2009
м
Относительные свойства объектов
====Относительные свойства объектов====
Помимо основного значения свойства объектов могут содержать относительные значения.
 
синтаксис:
 
obj.prop = х //присваивает 'x' как основное значение свойства 'prop'
//все относительные значения свойства уничтожаются
obj.prop[] = х //присваивает 'x' как основное значение свойства 'prop'
//все относительные значения свойства сохраняются
obj.prop[i] = х //присваивает 'x' как относительное значение свойства 'prop' для 'i'
obj.prop = null //уничтожает основное и все относительные значения свойства 'prop'
obj.prop[] = null //уничтожает основное значениe свойства 'prop'
obj.prop[i] = null //уничтожает относительное значениe свойства 'prop' для 'i'
 
x = obj.prop //читает значение свойства 'prop' для актера. Эквивалентно x = obj.prop[actor]
x = obj.prop[] //читает основное значение свойства 'prop' независимо от actor
x = obj.prop[i] //читает относительное значение свойства 'prop' для 'i'
 
где
obj - любой объект
prop - имя свойства объекта
i - числовоe или строковое значение, или объект
 
Основные отличия от массивов:
- нет такого понятия как размер массива.
- могут быть "дыры" в заполнении. Например, если значение .prop[3] не задано, то x = obj.prop[3] вернет основное значение obj.prop
- индекс i может быть не только числом, но и строкой, а также объектом.
- если значение задано относительно класса, оно будет действовать для всех его элементов.
 
Пример использования:
 
class гном
...
unique великан
...
unique вход_в_шахту
//описание
.описание = "Круглая дыра в скале"
.описание[гном] = "Вход в шахту. Сделан гномами и для гномов" //действует для всех гномов
.описание[великан] = "Маленькая мерзкая дыра в скале. Тебе туда не залезть. Пахнет гномами."
//флаги
.можно_пройти[гном] = да //действует для всех гномов
.можно_пройти[великан] = нет
===Элементы объекта===
1379
правок