Изучение примитивных типов Rust

RustRustBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабе вы узнаете о различных примитивных типах, предоставляемых Rust, включая скалярные типы, такие как знаковые и беззнаковые целые числа, числа с плавающей точкой, юникодовые скалярные значения, логические значения и единичный тип. Также вы изучите составные типы, такие как массивы и кортежи, и узнаете, как аннотировать переменные их соответствующими типами или позволить Rust определить типы из контекста.

Примечание: Если в лабе не указано имя файла, вы можете использовать любое имя, которое хотите. Например, вы можете использовать main.rs, скомпилировать и запустить его с помощью rustc main.rs &&./main.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL rust(("Rust")) -.-> rust/BasicConceptsGroup(["Basic Concepts"]) rust(("Rust")) -.-> rust/DataTypesGroup(["Data Types"]) rust(("Rust")) -.-> rust/FunctionsandClosuresGroup(["Functions and Closures"]) rust(("Rust")) -.-> rust/MemorySafetyandManagementGroup(["Memory Safety and Management"]) rust/BasicConceptsGroup -.-> rust/variable_declarations("Variable Declarations") rust/BasicConceptsGroup -.-> rust/mutable_variables("Mutable Variables") rust/DataTypesGroup -.-> rust/integer_types("Integer Types") rust/DataTypesGroup -.-> rust/floating_types("Floating-point Types") rust/DataTypesGroup -.-> rust/boolean_type("Boolean Type") rust/FunctionsandClosuresGroup -.-> rust/function_syntax("Function Syntax") rust/FunctionsandClosuresGroup -.-> rust/expressions_statements("Expressions and Statements") rust/MemorySafetyandManagementGroup -.-> rust/lifetime_specifiers("Lifetime Specifiers") subgraph Lab Skills rust/variable_declarations -.-> lab-99191{{"Изучение примитивных типов Rust"}} rust/mutable_variables -.-> lab-99191{{"Изучение примитивных типов Rust"}} rust/integer_types -.-> lab-99191{{"Изучение примитивных типов Rust"}} rust/floating_types -.-> lab-99191{{"Изучение примитивных типов Rust"}} rust/boolean_type -.-> lab-99191{{"Изучение примитивных типов Rust"}} rust/function_syntax -.-> lab-99191{{"Изучение примитивных типов Rust"}} rust/expressions_statements -.-> lab-99191{{"Изучение примитивных типов Rust"}} rust/lifetime_specifiers -.-> lab-99191{{"Изучение примитивных типов Rust"}} end

Примитивы

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

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

  • Знаковые целые числа: i8, i16, i32, i64, i128 и isize (размер указателя)
  • Беззнаковые целые числа: u8, u16, u32, u64, u128 и usize (размер указателя)
  • Числа с плавающей точкой: f32, f64
  • char Юникодовые скалярные значения, такие как '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;
}

Резюме

Поздравляем! Вы завершили лабу по Примитивам. Вы можете практиковаться в других лабах в LabEx, чтобы улучшить свои навыки.