0Pricing
Learn Rust Coding · Урок

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

Целые числа, числа с плавающей точкой, 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 — локальная установка не требуется.

Все уроки этого курса

  1. let и изменяемость
  2. Скалярные типы
  3. Составные типы
  4. Затенение
← Назад к Learn Rust Coding