1379
правок
Изменения
м
== Типы значений ==Каждое значение в языке ТОМ2 имеет свой тип. Узнать тип у любого значения можно через метод [[ТОМ2:type|type]]=== Простые типы ======= Bool (Булево) ====Логический тип данных. Может принимать значение "да" (true) или "нет" (false). Над данными логического типа действуют операции булевой алгебры. ==== Number (Число) ====Числовым типом может быть представлено любое целое число. Над данными числового типа действуют основные арифметические операции. ==== String (Строка) ====Строковым типом может быть представлена любая последовательность символов, в том числе и пустая. В выражениях строка заключается в двойные кавычки - "это строка". ==== And-list (И-список) ====???==== Or-list (Или-список) ====???==== Spcvalue (Спецзначение) ====???
=== Сложные типы ===
==== Action (Действие) ====
==== Class (Класс) ====
==== ?Fact (Факт) ====К любому булеву значению можно прикрепить текстовый комментарий. Это позволяет давать более естественные ответы чем 'да' или 'нет'.
→or-list (или-список)
{{Содержание справа}}
Значение любого типа имеет набор свойств, к которым возможно обращение через точку:
A.B
- где A - значение, а B - имя его свойства
Узнать тип любого значения можно через свойство ".type": var A ==== Attribute (Признак) ===="test" %{A.type}
==Простые типы== ?Expression К простым типам данных относятся: bool (Выражениебулево) , number (число), string (строка), spcvalue (спецзначение), course (направление). ===bool (булево)===bool – булево. Логический тип данных. Может принимать значение true ('да') или false ('нет', 'ошибка'). Над данными логического типа действуют операции булевой алгебры.
Пример: var A =да, "вы правы" var B =нет, "я так не думаю" var C == Location (Локация) ====ошибка, "это невозможно!"
==== Object number (Объектчисло) ====Объектnumber – число. Объектным Числовым типом может быть представлен любой существующий объектпредставлено любое целое число. Значения этого Над данными числового типа предоставляют доступ к свойствам и методам объектадействуют основные арифметические операции.==== Preposition (Предлог) ====
==== Word string (Словострока) ====string – строка. Строковым типом может быть представлена любая последовательность символов, в том числе и пустая. В выражениях строка заключается в двойные кавычки.
Пример: "это строка" "это тоже пример строки типа string" ===spcvalue (спецзначение)===spcvalue – спецзначение.Платформа имеет фиксированный набор [[ТОМ2: ключевые слова|служебных слов]] используемых в коде игры. Все эти слова имеют тип "спецзначение".В режиме "в игре" спецзначения не доступны. ===course (направление)===course – направление. Всего есть десять направлений: вверх, вниз, и компасные (север, юг, запад, восток, северо-запад, северо-восток, юго-запад, юго-восток). ==Объектные типы==К объектным типам данных относятся: object (объект), property (свойство), attribute (признак), relation (отношение), class (класс), location (локация), word (слово), preposition (предлог). Значения этих типов подразумевают некоторую сущность, обладающую именем, свойствами и поведением. Каждое значение объектного типа может принадлежать некоторому классу или списку классов. Класс, назначенный значению первым, является основным классом и не может быть отменён в последствии. Тип и классы в свою очередь частично (или полностью) определяют поведение объекта. Основное отличие типов от классов заключается в том, что поведение класса объекта программируется разработчиком стандартной библиотеки или игры, в то время как поведение типа жёстко определено разработчиком платформы. Все значения объектных типов имеют конструктор - код выполняемый во время создания объекта. Свойства у объекта могут быть 3х видов:* Системные свойства: type, name, key, loc, pos и т.д. Подробнее см. [системные свойства].* Классовые свойства - свойства унаследованные от классов объекта. Эти свойства могут быть переопределены операцией присвоения: А.Б = В.* Собственные свойства - определённые в конструкторе как переменная: object A { var Б = В }. Свойства объектов также могут быть вычисляемыми. Синтаксис вычисляемого свойства: var А = { <код> }Код свойства выполняется при каждом обращении к свойству объект, возвращенное значение является значением свойства. Объект может содержать в себе множество вложенных объектов. Смысловая интерпретация вложения одного объекта в другой может быть различной и зависит как от вида вложения так и от замысла автора игры. Вложения объектов могут быть 3х видов:* inside (внутри) - подразумевает расположение объектов внутри полости другого объекта. Примеры: инвентарь ГГ, содержимое сундука.* outside (снаружи) - подразумевает расположение объектов на внешней поверхности другого объекта. Примеры: одежда ГГ, предметы на столе.* part (часть) - подразумевает что объекты являются частями другого объекта. Примеры: руки, ноги ГГ, дверной замок. Директивы вложения имеют следующий синтаксис: А inside Б //объект А помешается внутрь объекта Б А outside Б //объект А помешается на поверхность объекта Б А part Б //объект А становится частью объекта Б Обращение к вложенным объектам осуществляется через системные свойства inside, outside и part А.inside //возвращает список объектов, находящихся внутри объекта А А.outside //возвращает список объектов, находящихся на внешней поверхности объекта А А.part //возвращает список объектов, являющихся частями объекта А Ниже приведены описания типов объектов: ===object (объект)===object – объект.Этим типом может быть представлен любой существующий уникальный единичный объект. ===property (свойство)===Зарезервировано. В настоящее время значения этого типа не используются. ===attribute (признак)===attribute - признак. ??? ===relation (отношение)===Зарезервировано. В настоящее время значения этого типа не используются. ===class (класс)===class – класс. ??? ===location (локация)===location – локация. ??? ===word (слово)===word – слово. ??? Пример: word дом { key = МрНд defkey = ИпЕч form АпЕч = "домо`й" form ВпЕч = "до`м" form ВпМч = "дома`" form ДпЕч = "до`му" form ДпМч = "дома`м" form ИпЕч = "до`м" form ИпМч = "дома`" form ПпЕч = "до`ме" form ПпМуЕч = "дому`" form ПпМч = "дома`х" form РпЕч = "до`ма" form РпМч = "домо`в" form ТпЕч = "до`мом" form ТпМч = "дома`ми"} ===preposition (предлог)===preposition – предлог. ??? ==Списки==Это списки значений. К спискам относятся: and-list – и-список, or-list – или-список.Списки можно получить, объединив значения с помощью операторов 'и' и 'или'. Пример: var А = "роза" и "кинжал" // А – и-список var Б = 2 или 3 или 6 // Б – или-список Невозможно получить списки boolean значений – для них это булева операция. ===and-list (и-список)===and-list (и-список) – список значений, объединённый союзом 'и'. При выводе отображается в виде строки:значение_1, значение_2, значение_3, ... и значение_N Невозможно получить and-list чисел – для них это эквивалентно сложению. При запросе значения специальных свойств объекта возвращается and-list.Пример: X.cls // возвращает и-список с классами объекта X; X.inside // возвращает и-список объектов, находящихся внутри объекта X; X.outside // возвращает и-список объектов, находящихся снаружи объекта X. ===or-list (или-список)===or-list (или-список) – список альтернативных значений, объединённый союзом 'или'. При выводе or-list отображается в виде строки: значение_1, значение_2, значение_3, ... или значение_N [[Категория:Документация ТОМТОМ2]]