-
Notifications
You must be signed in to change notification settings - Fork 0
Типы
Flower -- строго типизированный язык. В нём существуют 4 основных типа:
- Int (целое число)
- Real (вещественное число)
- String (строка)
- Bool (логический тип)
Кроме того, есть возможность описывать структуры с помощью служебного слова struct. Переменные, имеющие данный тип, можно использовать в арифметических выражениях. В случае, если в выражении участвуют обе переменные одной структуры, то арифметические действия проводятся с полями попарно; если одна из переменных типа структура, а другая имеет один из четырёх базовых типов, то к каждому полю будет применена указанная операция со второй переменной. При присваивании значений полям структуры можно обращаться к ним с помощью точки, как C/C++, а можно в фигурных скобках указывать поля и присваиваемые значения (похоже на словари Python). Обратите внимание: нового объекта во втором случае не создаётся, это синтаксический сахар.
struct vector {
int x, y, z;
}
program {
struct vector a, b, c;
a = { x = 1, y = 2, z = 3 };
b = a
c = a + b;
/* Это эквивалентно:
c.x = a.x + b.x
c.y = a.y + b.y
c.z = a.z + b.z */
c = a + 1
/* Это эквивалентно:
c.x = a.x + 1
c.y = a.y + 1
c.z = a.z + 1 */
}