Anotações de Tempo de Vida em Traits (Traços) Rust

Beginner

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

Introdução

Neste laboratório, exploramos a anotação de lifetimes (tempo de vida) em métodos de traits (traços), o que é semelhante às funções. Isso envolve a anotação de lifetimes no bloco impl também. O código fornecido demonstra um exemplo onde uma struct Borrowed possui uma anotação de lifetime, e o trait Default é implementado para ela usando o lifetime anotado. A função principal então cria uma instância de Borrowed usando o método Default::default(), demonstrando o uso de lifetimes em métodos de trait.

Nota: Se o laboratório não especificar um nome de arquivo, você pode usar qualquer nome de arquivo que desejar. Por exemplo, você pode usar main.rs, compilar e executar com rustc main.rs && ./main.

Traits (Traços)

A anotação de lifetimes (tempo de vida) em métodos de trait (traço) é basicamente semelhante às funções. Note que impl também pode ter anotações de lifetimes.

// Uma struct com anotação de lifetimes.
#[derive(Debug)]
struct Borrowed<'a> {
    x: &'a i32,
}

// Anotar lifetimes para impl.
impl<'a> Default for Borrowed<'a> {
    fn default() -> Self {
        Self {
            x: &10,
        }
    }
}

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

Resumo

Parabéns! Você concluiu o laboratório de Traits (Traços). Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.