Pular para conteúdo

Exercícios: Aula 10 - Generics e Traits 🧬

🟢 Básico

  1. Par Genérico: Crie uma struct Par<T> que armazene dois valores do mesmo tipo T. Instancie um par de i32 e um par de String.
  2. Trait de Fala: Defina uma trait Fala com um método falar(&self). Implemente-a para uma struct Cachorro e uma struct Gato.

🟡 Intermediário

  1. Comparador Genérico: Escreva uma função genérica chamada imprimir_se_maior<T: PartialOrd + std::fmt::Display>(a: T, b: T) que compare dois valores e imprima o maior deles.
  2. Implementação de Trait: Implemente a trait std::fmt::Display para uma struct Ponto { x: i32, y: i32 } para que ela possa ser impressa diretamente com println!("{}", ponto).

🔴 Desafio

  1. Área em Traits: Crie uma trait Forma com o método area(&self) -> f64. Implemente essa trait para Circulo e Retangulo. Em seguida, crie uma função que receba uma referência genérica &T onde T: Forma e imprima a área formatada.