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

Beginner

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

Введение

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

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

Трейты

Аннотация сроков жизни в методах трейтов в основном аналогична функциям. Обратите внимание, что 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, чтобы улучшить свои навыки.