В этой главе курса по Rust мы разбираем базовые типы данных: числа с разной знаковостью и размером, строки String и &str, булевы значения, кортежи и массивы. Показаны практические примеры использования и поясняется, когда и как применять эти типы в коде. 🚀
Rust предоставляет несколько числовых типов с явным указанием знаковости и размера:
Целые числа
Тип
Размер
Знаковость
Диапазон
i8
8 бит
signed
-128 до 127
u8
8 бит
unsigned
0 до 255
i32
32 бита
signed
-2_147_483_648 до 2_147_483_647
u32
32 бита
unsigned
0 до 4_294_967_295
i64, u64, i128, u128 — для больших значений
ㅤ
ㅤ
ㅤ
По умолчанию Rust использует i32 в арифметических операциях, если тип не указан явно.
Числа с плавающей точкой
f32 — 32-битный float
f64 — 64-битный float (используется по умолчанию)
let a: i32 = -10;
let b: u8 = 255;
let pi: f64 = 3.14159;
Строки
В Rust существует два основных типа строк:
&str — строковый slice (срез), неизменяемый, часто используется для литералов.
String — изменяемый тип строки, управляет памятью в куче.
let s1: &str = "Hello";
let s2: String = String::from("World");
Преобразование между ними: это может понадобиться, например, при передаче строки в функцию, которая ожидает String, или при использовании API, возвращающего &str.
let s3 = s1.to_string();
let s4 = &s2[..];
Булевы значения
Булев тип представлен как bool и может быть только true или false:
let is_active: bool = true;
Кортежи (tuples)
Кортежи позволяют объединять значения разных типов в одну структуру и имеют фиксированную длину:
let person: (&str, i32) = ("Alice", 30);
let (name, age) = person; // деструктуризация
Обращение по индексу:
println!("{} is {} years old", person.0, person.1);
Массивы
Массивы имеют фиксированный размер и содержат элементы одного типа. Они полезны при работе с известным количеством элементов и позволяют эффективно использовать статическую память:
let numbers: [i32; 3] = [1, 2, 3];
let repeated = [0; 5]; // [0, 0, 0, 0, 0]
Обращение к элементу массива:
println!("{}", numbers[0]);
Итоги
🔹 Rust строго типизирован и требует явного указания типа в случае неоднозначности. 🔹 Строки представлены в виде &str и String, каждый имеет своё назначение. 🔹 Кортежи и массивы позволяют группировать данные, но массивы фиксированы по размеру. 🔹 Использование числовых и булевых типов помогает точно моделировать данные в программе.
В следующей главе мы изучим управление потоком выполнения: условия и циклы. 🚀
В этой главе курса по Rust мы изучаем, как управлять потоком выполнения программы. Вы узнаете, как работают конструкции if, else, оператор match для сопоставления с образцом, а также циклы loop, while и for. Всё сопровождается понятными примерами кода и объяснениями. 🚀
Во второй главе курса по Rust мы рассмотрим структуру программы, разберём процесс компиляции и запуска кода. Также познакомимся с Cargo — мощным инструментом для управления проектами на Rust. Узнаем, как создавать, собирать и запускать проекты с его помощью. 🚀
В первой главе курса по Rust мы рассмотрим основные особенности языка, его преимущества и недостатки, а также сферы применения. Подробно разберём процесс установки Rust на различные операционные системы. Если вы только начинаете изучать Rust, этот материал поможет вам разобраться в основах и сделать первый шаг в программировании на Rust. 🚀