Rust

Lifetimes

Anotações de lifetime, regras de elisão, lifetime 'static, lifetimes em structs, lifetime bounds

20 perguntas de entrevista·
Mid-Level
1

Qual é o propósito principal dos lifetimes em Rust?

Resposta

Os lifetimes permitem que o compiler verifique se todas as references são válidas durante todo o seu uso. Eles garantem que uma reference nunca sobreviva aos dados a que se refere, evitando dangling references. O borrow checker usa os lifetimes para validar a segurança de memória em tempo de compilação, sem overhead em tempo de execução.

2

Qual sintaxe é usada para anotar um lifetime em uma reference?

Resposta

Os lifetimes são anotados com um apóstrofo seguido de um nome, geralmente uma letra minúscula como 'a. A sintaxe &'a T significa uma reference a T com o lifetime 'a. Por convenção, usa-se 'a, 'b, 'c para os lifetimes genéricos, mas qualquer identificador válido pode ser usado após o apóstrofo.

3

O que significa o lifetime 'static em Rust?

Resposta

O lifetime 'static indica que uma reference pode viver durante toda a duração do programa. String literals como "hello" têm automaticamente o lifetime 'static porque estão embutidos no binário. Constantes globais e valores criados com Box::leak também têm esse lifetime. Atenção: 'static não significa que o valor existiu desde o início do programa, mas que pode viver até o fim.

4

Quantas regras de elisão de lifetime o compiler do Rust aplica automaticamente?

5

Por que uma função fn longest(x: &str, y: &str) -> &str não compila?

+17 perguntas de entrevista

Domine Rust para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis