Rust

Smart Pointers

Box<T>, Rc<T>, Arc<T>, RefCell<T>, interior mutability, traits Deref e Drop

22 perguntas de entrevista·
Mid-Level
1

Qual é o principal caso de uso de Box<T> em Rust?

Resposta

Box<T> aloca dados no heap em vez da stack. Isso é útil para tipos com tamanho desconhecido em tempo de compilação (tipos recursivos), para transferir a ownership de grandes volumes de dados sem copiar, ou para criar trait objects. O próprio ponteiro Box tem tamanho fixo na stack.

2

Como definir um tipo recursivo como uma lista encadeada em Rust?

Resposta

Um tipo recursivo direto como enum List { Cons(i32, List), Nil } não compila porque o compilador não consegue determinar o tamanho. Usando Box<List>, cria-se uma indireção com tamanho fixo (ponteiro), permitindo que o compilador calcule o tamanho do tipo.

3

Qual é a principal diferença entre Rc<T> e Arc<T>?

Resposta

Rc (Reference Counted) usa um contador de referências não atômico, o que o torna mais eficiente, porém limitado a uma única thread. Arc (Atomically Reference Counted) usa operações atômicas para o contador, permitindo o compartilhamento entre threads, mas com uma leve sobrecarga de desempenho.

4

O que o trait Deref permite em Rust?

5

O que é a mutabilidade interior (interior mutability) em Rust?

+19 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