ТОМ2: типы значений: различия между версиями

Материал из IFВики
Перейти к навигации Перейти к поиску
м (Relation (Отношение))
м (Объектные типы)
Строка 33: Строка 33:
 
Класс, назначенный значению первым, является основным классом и не может быть отменён в последствии.
 
Класс, назначенный значению первым, является основным классом и не может быть отменён в последствии.
  
Тип и классы объекта в свою очередь частично (или полностью) определяют поведение объекта.  
+
Тип и классы в свою очередь частично (или полностью) определяют поведение объекта.  
  
 
Основное отличие типов от классов заключается в том, что поведение класса объекта программируется разработчиком стандартной библиотеки или игры, в то время как поведение типа жёстко определено разработчиком платформы.
 
Основное отличие типов от классов заключается в том, что поведение класса объекта программируется разработчиком стандартной библиотеки или игры, в то время как поведение типа жёстко определено разработчиком платформы.
  
 +
Все значения данных типов имеют конструктор - код выполняемый во время создания объекта.
 +
 +
Свойства у объекта могут быть 3х видов:
 +
* Системные свойства: type, name, key, loc, pos и т.д. Подробнее см. [системные свойства].
 +
* Классовые свойства - свойства унаследованные от классов объекта. Эти свойства могут быть переопределены операцией присвоения А.Б = В.
 +
* Собственные свойства - определённые в конструкторе объекта как переменная: object A { var Б = В }.
 
===object (объект)====
 
===object (объект)====
 
???
 
???

Версия 10:12, 3 мая 2014

Каждое значение в языке ТОМ2 имеет свой тип.

Значение любого типа имеет набор свойств, к которым возможно обращение через точку:

A.B

- где A - значение, а B - имя его свойства


Узнать тип любого значения можно через свойство ".type":

var A = "test"
%{A.type}


Простые типы

К простым типам данных относятся: bool (булево), number (число), string (строка), spcvalue (спецзначение), course (направление).

bool (булево)

Логический тип данных. Может принимать значение "да" (true) или "нет" (false). Над данными логического типа действуют операции булевой алгебры.

number (число)

Числовым типом может быть представлено любое целое число. Над данными числового типа действуют основные арифметические операции.

string (строка)

Строковым типом может быть представлена любая последовательность символов, в том числе и пустая. В выражениях строка заключается в двойные кавычки - "это строка".

spcvalue (спецзначение)

Платформа имеет фиксированный набор служебных слов используемых в коде игры. Все эти слова имеют тип "спецзначение". В режиме "в игре" спецзначения не доступны.

Объектные типы

К объектным типам данных относятся: object (объект), property (свойство), attribute (признак), relation (отношение), class (класс), location (локация), word (слово), preposition (предлог).

Значения этих типов подразумевают некоторую сущность, обладающую именем, свойствами и поведением.

Каждое значение объектного типа может принадлежать некоторому классу или списку классов. Класс, назначенный значению первым, является основным классом и не может быть отменён в последствии.

Тип и классы в свою очередь частично (или полностью) определяют поведение объекта.

Основное отличие типов от классов заключается в том, что поведение класса объекта программируется разработчиком стандартной библиотеки или игры, в то время как поведение типа жёстко определено разработчиком платформы.

Все значения данных типов имеют конструктор - код выполняемый во время создания объекта.

Свойства у объекта могут быть 3х видов:

  • Системные свойства: type, name, key, loc, pos и т.д. Подробнее см. [системные свойства].
  • Классовые свойства - свойства унаследованные от классов объекта. Эти свойства могут быть переопределены операцией присвоения А.Б = В.
  • Собственные свойства - определённые в конструкторе объекта как переменная: object A { var Б = В }.

object (объект)=

???

property (свойство)

Зарезервировано. В настоящее время значения этого типа не используются.

class (класс)

???

location (локация)

???

word (слово)

???

preposition (предлог)

???

relation (отношение)

Зарезервировано. В настоящее время значения этого типа не используются.

Attribute (Признак)

???

Object (Объект)

Объект. Объектным типом может быть представлен любой существующий объект. Значения этого типа предоставляют доступ к свойствам и методам объекта.


Списки

and-list (и-список)

???

or-list (или-список)

???