Скалярные типы
Целые числа, числа с плавающей точкой, bool и char
«Скалярные типы» — бесплатный урок Learn Rust Coding на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn Rust Coding, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn Rust Coding содержит 4 уроков всего.
What Are Scalar Types?
Скалярный тип представляет собой единственное значение. В Rust есть четыре основных скалярных типа:
- Целые числа
- Числа с плавающей запятой
- Логические значения (булевы)
- Символы
fn main() {
let i = 10; // integer
let f = 2.5; // float
let b = true; // bool
let c = 'R'; // char
println!("{} {} {} {}", i, f, b, c);
}Integer Types
Целые числа бывают знаковые (i) и беззнаковые (u) с фиксированным размером: i8, i16, i32, i64, i128, то же самое применимо и к u.
Типом целых чисел по умолчанию является i32.
fn main() {
let small: i8 = -120;
let big: u64 = 18_000_000_000;
println!("{} {}", small, big);
}Signed vs Unsigned
Знаковые (signed) целые числа могут быть отрицательными; беззнаковые (unsigned) — нет.
- Диапазон
i8: от -128 до 127. - Диапазон
u8: от 0 до 255.
Выбирайте беззнаковые типы, если значение никогда не может быть отрицательным, например, при подсчете количества.
fn main() {
let temperature: i32 = -15;
let people: u32 = 250;
println!("temp {} people {}", temperature, people);
}Integer Literals
Вы можете записывать целые числа в разных системах счисления и использовать символы подчеркивания для удобства чтения.
- Десятичная:
1_000_000 - Шестнадцатеричная:
0xff - Восьмеричная:
0o77 - Двоичная:
0b1010
fn main() {
let dec = 1_000;
let hex = 0xff;
let bin = 0b1010;
println!("{} {} {}", dec, hex, bin);
}Floating-Point Types
В Rust есть два типа чисел с плавающей запятой: f32 и f64. По умолчанию используется f64, поскольку он обладает более высокой точностью.
Числа с плавающей запятой соответствуют стандарту IEEE-754.
fn main() {
let pi: f64 = 3.141592;
let e: f32 = 2.718;
println!("pi {} e {}", pi, e);
}Numeric Operations
Rust поддерживает обычные математические операторы: +, -, *, / и % (остаток от деления).
Целочисленное деление выполняется с отсечением дробной части в сторону нуля.
fn main() {
let sum = 5 + 10;
let quotient = 7 / 2; // 3 (integer)
let remainder = 7 % 2; // 1
let float_div = 7.0 / 2.0; // 3.5
println!("{} {} {} {}", sum, quotient, remainder, float_div);
}The Boolean Type
Тип bool имеет ровно два значения: true (истина) и false (ложь).
Логические значения получаются в результате сравнений и используются в условиях if.
fn main() {
let is_active = true;
let is_bigger = 10 > 3;
println!("{} {}", is_active, is_bigger);
}The Character Type
Тип char представляет собой отдельное скалярное значение Unicode и записывается в одинарных кавычках.
В Rust тип char занимает 4 байта и может содержать гораздо больше, чем просто символы ASCII, включая эмодзи и буквы с диакритическими знаками.
fn main() {
let letter = 'A';
let symbol = '@';
let heart = '\u{2764}';
println!("{} {} {}", letter, symbol, heart);
}char vs String
Одинарные кавычки создают char; двойные кавычки создают строковый срез (&str).
'a'— это один символ."a"— это строка из одного символа.
fn main() {
let c = 'x';
let s = "x";
println!("char {} string {}", c, s);
}Type Conversion with as
Rust не выполняет автоматическое преобразование числовых типов. Используйте ключевое слово as для явного приведения.
Будьте осторожны: приведение к меньшему типу может привести к потере данных.
fn main() {
let x: i32 = 65;
let y: f64 = x as f64;
let c = x as u8 as char;
println!("{} {} {}", x, y, c);
}Putting Scalars Together
Программы постоянно комбинируют скалярные типы. Здесь мы смешиваем целые числа, числа с плавающей точкой и логические значения для принятия решения.
fn main() {
let price: f64 = 19.99;
let quantity: u32 = 3;
let total = price * quantity as f64;
let is_expensive = total > 50.0;
println!("total {} expensive {}", total, is_expensive);
}Quick Check
Проверьте свои знания о скалярных литералах в Rust.
Recap
Четыре скалярных типа в Rust:
- Целые числа — знаковые (i32) и беззнаковые (u32) различных размеров.
- Числа с плавающей запятой — f32 и f64, по умолчанию f64.
- bool — true или false.
- char — один символ Unicode в одинарных кавычках.
Используйте as для явного приведения числовых типов.
fn main() {
let count: u32 = 42;
let ratio: f64 = count as f64 / 7.0;
let ok: bool = ratio > 5.0;
let grade: char = 'B';
println!("{} {} {} {}", count, ratio, ok, grade);
}Часто задаваемые вопросы
Урок «Скалярные типы» бесплатный?
Да — полный текст урока «Скалярные типы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn Rust Coding, подпишись на CoddyKit PRO. Курс Learn Rust Coding содержит 4 уроков всего.
Чему я научусь в уроке «Скалярные типы»?
Целые числа, числа с плавающей точкой, bool и char Ты практикуешь Learn Rust Coding с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Learn Rust Coding?
Предыдущий опыт не требуется. Learn Rust Coding на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Скалярные типы»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Learn Rust Coding?
Да. Каждый урок Learn Rust Coding включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- let и изменяемость
- Скалярные типы
- Составные типы
- Затенение