Примитивы

Rust предоставляет доступ к большому количеству примитивов:

Скалярные типы

• знаковые целочисленные: i8, i16, i32, i64 и isize (размер указателя)

• беззнаковые целочисленные: u8, u16, u32, u64 и usize (размер указателя)

• вещественные: f32, f64

• char скалярное значение Unicode, например: 'a', 'α' и '∞' (4 байта каждый)

• bool: true или false

• единичный тип (), значение которого так же ()

Несмотря на то, что значение единичного типа является кортежем, оно не считается составным типом, потому что не содержит нескольких значений.

Составные типы

• массивы, например [1, 2, 3]

• кортежи, например (1, true)

Переменные всегда должны быть аннотированы. Числам можно указать определённый тип с помощью суффикса, иначе будет присвоен тип по умолчанию. Целочисленные значения по умолчанию i32, а вещественные f64. Стоит заметить, что Rust также умеет выводить типы из контекста.

fn main() {

// Переменные могут быть аннотированы.

let logical: bool = true;

let a_float: f64 = 1.0;  // Обычная аннотация

let an_integer   = 5i32; // Суффиксная аннотация

// Этим переменным будет присвоен тип по умолчанию.

let default_float   = 3.0; // `f64`

let default_integer = 7;   // `i32`

// Тип также может быть выведен из контекста.

let mut inferred_type = 12; // Тип i64 выводится из другой строки

inferred_type = 4294967296i64;

// Значение изменяемой переменной может быть изменено.

let mut mutable = 12; // Изменяемое `i32`

mutable = 21;

// Ошибка! Тип переменной изменить нельзя.

mutable = true;

// Переменные могут быть переопределены с помощью затенения.

let mutable = true;

}

הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Смотрите также:

стандартная библиотека (std), mut, вывод типов и затенение

Загрузка...