Skip to content
Dmitriy Smirnov edited this page Apr 6, 2022 · 1 revision

Flower -- строго типизированный язык. В нём существуют 4 основных типа:

  1. Int (целое число)
  2. Real (вещественное число)
  3. String (строка)
  4. 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 */
}
Clone this wiki locally