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 comrustc 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.