Rust

Traits avançados

Associated types vs generics, GATs, trait objects, palavra-chave dyn, object safety, vtables

22 perguntas de entrevista·
Senior
1

Qual é a principal diferença entre um associated type e um parâmetro generic em um trait?

Resposta

Um associated type permite apenas uma implementação do trait por tipo, enquanto um parâmetro generic permite várias implementações. Com um associated type, o tipo é determinado pela própria implementação, o que simplifica a inferência de tipos e evita especificar o tipo a cada uso.

2

Qual palavra-chave é usada para criar um trait object em Rust?

Resposta

A palavra-chave dyn é usada para criar um trait object em Rust. Ela indica que o dispatch de métodos acontecerá dinamicamente em tempo de execução por meio de uma vtable, ao contrário do dispatch estático com generics, que é resolvido em tempo de compilação.

3

O que é uma vtable no contexto dos trait objects?

Resposta

Uma vtable (virtual table) é uma tabela de ponteiros para as implementações dos métodos do trait para um tipo concreto. Ela é usada para o dispatch dinâmico de trait objects, permitindo chamar o método correto em tempo de execução sem conhecer o tipo concreto em tempo de compilação.

4

Que condição um trait deve cumprir para ser object-safe?

5

Por que o trait Clone não é object-safe?

+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