Ключевое слово T/type



T <имя типа>
   String s // переменная экземпляра типа
   . String ps // закрытая переменная экземпляра типа [обоснование: точка используется для скрытых файлов и папок в Unix]
   F (s) // конструктор
      .s = s
   F get_s_len() // функция типа (метод)
      R .s.len

[Так как
T
и
type
являются ключевыми словами в 11l, вы можете использовать
Ty
и
type_name
вместо них.]



Псевдонимы типов


T Tuple2[Ty] = Tuple[Ty, Ty] // `Tuple[Ty, Ty]` можно сократить до `(Ty, Ty)`

Псевдонимы типов можно использовать для создания именованных кортежей:
T Employee = (String name, Int id)


Ключевые подслова T/type



T.enum
/
type.enum
используется для объявления перечислений:
T.enum TokenCategory
   NAME
   KEYWORD
   CONSTANT
   TEST_CATEGORY = 10
[Перечисления
NAME
,
KEYWORD
и
CONSTANT
получат значения 0, 1 и 2 соответственно.]


У
T
/
type
также есть подслова
base
и
interface
, но они пока что не поддерживаются.


Почему T/type?