Carregando
0x80Lição 9 de 17

Use traits e generics

Escreva comportamento reutilizável com trait bounds.

18 min Questionário com 5 perguntas 1 exercício de código
Ao final desta lição, você saberá
  • Definir funções genéricas limitadas por traits.

Generics permitem que uma função funcione para vários tipos. Traits definem comportamento exigido. Juntos, trait bounds como T: PartialOrd indicam quais operações o código genérico pode usar.

main.rs
1fn max_value<T: PartialOrd + Copy>(a: T, b: T) -> T {
2    if a > b { a } else { b }
3}
4
5fn main() {
6    println!("{}", max_value(3, 9));
7}
Saída
9

Trait bounds funcionam como contratos: deixam o reuso explícito e seguro em tipos. Comece com traits padrão como PartialOrd, Display e Clone.

Experimente

Até 15 XP

Fluxo de decisão de trait bound

Acompanhe como uma função genérica escolhe o bound necessário para compilar.

Mensagem 1 de 3Previsões 0/0
Generic function
Compiler
Trait system

Principais conclusões

  • Generics evitam duplicação de lógica.

  • Traits descrevem capacidades necessárias.

  • Bounds conectam genericidade e segurança de compilação.

Quiz da aula

5 perguntas · aprovação com 4 acertos · até 50 XP

Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.

Pratique: escreva código em Rust

Estes exercícios rodam de verdade. Escreva o programa, clique em “Executar testes” e leia o que o compilador informa: aprender a ler as mensagens do compilador é metade do aprendizado de Rust.

Exercício 1

Escolha o maior inteiro

+25 XP

Implemente max_i32(a, b) retornando o maior valor entre dois i32 e imprima o resultado.

  • Segundo maior
  • Primeiro maior
main.rs
Carregando editor…

As aulas de Rust foram escritas para o Rust estável moderno; os exercícios rodam no Rust 1.82 pelo Wandbox, um serviço público gratuito. Seu código-fonte e a entrada de teste são enviados a esse serviço.

Dúvidas sobre esta lição

Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.

Carregando publicações…