There was some repeatable code I wrote 2-3 times. Let's make module one time and forever.
- Модуль представляет абстракцию "тип данных"
- Бывают скалярные типы
int,bool,string - Бывают контейнерные типы
array<int>,hash<int>,function<int,int>- Пример.
array<int>. Массив у которого значения типаint - Пример.
hash<int>. Хэш у которого значения типаint(а ключи типаstring) - Пример.
function<bool,int,int>. Функция возвращает свой вложенный первый тип (bool), и принимает в качестве аргумента все остальные вложенные типы (int,int)
- Пример.
- Бывают структурные типы
struct{x: int, y: int}- Это пример структуры из 2 полей типа
intс именамиxиy
- Это пример структуры из 2 полей типа
- Особый случай
void. Он скалярный, но переменной этого типа быть не может. Это обозначение, что функция не возвращает никакого значенияfunction<void>
new Type 'int'- прим. заведите себе сразу удобный alias
type = (t)-> new Type t
- прим. заведите себе сразу удобный alias
t1.cmp(t2)сравнить два типа"my type is #{t1}"у него есть toString(), потому он нормально вставляется в интерполяцию строк