Аннотация сроков жизни в трейтах Rust

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

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

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

Введение

В этом лабораторном задании мы исследуем аннотацию сроков жизни в методах трейтов, которая аналогична функциям. Также она включает в себя аннотацию сроков жизни в блоке impl. Приведенный код демонстрирует пример, в котором структура Borrowed имеет аннотацию срока жизни, и для нее реализуется трейт Default с использованием аннотированного срока жизни. Затем в главной функции создается экземпляр Borrowed с использованием метода Default::default(), демонстрируя использование сроков жизни в методах трейтов.

Примечание: Если лабораторное задание не задает имя файла, вы можете использовать любое имя файла, которое хотите. Например, вы можете использовать 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/DataStructuresandEnumsGroup(["Data Structures and Enums"]) rust/BasicConceptsGroup -.-> rust/variable_declarations("Variable Declarations") rust/DataTypesGroup -.-> rust/integer_types("Integer Types") rust/FunctionsandClosuresGroup -.-> rust/function_syntax("Function Syntax") rust/FunctionsandClosuresGroup -.-> rust/expressions_statements("Expressions and Statements") rust/DataStructuresandEnumsGroup -.-> rust/method_syntax("Method Syntax") subgraph Lab Skills rust/variable_declarations -.-> lab-99208{{"Аннотация сроков жизни в трейтах Rust"}} rust/integer_types -.-> lab-99208{{"Аннотация сроков жизни в трейтах Rust"}} rust/function_syntax -.-> lab-99208{{"Аннотация сроков жизни в трейтах Rust"}} rust/expressions_statements -.-> lab-99208{{"Аннотация сроков жизни в трейтах Rust"}} rust/method_syntax -.-> lab-99208{{"Аннотация сроков жизни в трейтах Rust"}} end

Трейты

Аннотация сроков жизни в методах трейтов в основном аналогична функциям. Обратите внимание, что impl также может иметь аннотацию сроков жизни.

// Структура с аннотацией срока жизни.
#[derive(Debug)]
struct Borrowed<'a> {
    x: &'a i32,
}

// Аннотируем сроки жизни для impl.
impl<'a> Default for Borrowed<'a> {
    fn default() -> Self {
        Self {
            x: &10,
        }
    }
}

fn main() {
    let b: Borrowed = Default::default();
    println!("b is {:?}", b);
}

Резюме

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