## Объявление
Переменные объявляются выражением let.
let /*модификатор константности*/ x;
Свойство изменяемости можно указывать явно.
let mut x; // подлежит изменению
let const y; // не подлежит изменению
let z; // компилятор сам разберётся как рабоать с переменной
let auto k; // то же самое но явно
Переменные имеют свой тип. Изначально тип является шаблонным и компилятор выводит тип наиболее подходящий в конкретной ситуации.
Значения переменных могут быть заданы по-разному. Тип значения автоматически выводится из типа переменной. Все литералы по умолчанию находятся в суперпозиции, где нет конкретного типа, тип подберётся автоматически в соответствиями с требованиями переменной на основании лучшего результата.
Тип значения целых чисел числится как bignum и может
содержать большое число, больше чем можно
представить в виде реального значения.
Постфиксы идут после числа или строки и определяют тип значения. Например:
let mut k = 10i;
Данный код определяет переменную k и инициализирует её
целочисленным значением 10.
Постфиксы по знаку (целочисленные)
| Постфикс | Пример | Тип |
|---|---|---|
| i | 10i | int |
| ui | 10ui | unsigned int |
| si | -10si | signed int |
| Постфиксы по размеру (целочисленные) |
| Постфикс | Пример | Размер |
|---|---|---|
| i8 | 10i8 | byte |
| i16 | 665i16 | word |
| i32 | 10_000i32 | dword |
| i64 | 1000_000_000i64 | qword |
Числа можно разделять знаками подчёркивания для удобства чтения. Пример:
let const x = 10_000_000;
let const hex = 0x00_6a_91_ff;
Язык поддерживает запись значений через числитель/знаменатель. Такая запись приведётся к ближайшему дробному числу.
var : real a = (1/2)real;
Для проверки существования используется оператор exist() в
статичном выражении #if. 3 1 if
Мы можем во время компиляции проверить существование переменной.
let a; // работает как флаг
#if(exist(a)) // if помечен # как constexpr
{
let a : str = "hello";
}
else
{
let a : float = 0.3;
}
println!(a);
// Напечатает hello