Rust Odyssey

Leçons Le Book
Login
Rejoindre

🦀 Connexion réussie !

x

Chapitre 5

Abstractions de niveau 2

4. Exercices Chapitre 5

Ressources

📎 Exercices Chapitre 5.md 📎 Correction Exercices Chapitre 5.md

Exercice 1

#![allow(unused)]
fn main() {
fn largest_i32(a: i32, b: i32) -> i32 {
    if a > b { a } else { b }
}

fn largest_f64(a: f64, b: f64) -> f64 {
    if a > b { a } else { b }
}
}

1 ) Identifier précisément ce qui se répète entre les deux fonctions.

2 ) Remplacer les deux fonctions par une seule fonction générique largest<T>(a: T, b: T) -> T.

3 ) Pourquoi le corps de largest a-t-il besoin d’une contrainte sur T (par exemple PartialOrd) pour compiler ?

4 ) Que se passe-t-il concrètement à la compilation lorsqu’on appelle largest(3, 5) puis largest(3.0, 5.0) avec une fonction générique ?

Tu veux en apprendre plus ? 👋

C'est la fin de la partie gratuite... 😔

Accède à l’intégralité de la formation, à un Discord francophone actif, à des résumés écrits et à toutes les futures mises à jour pour seulement 95€ !

Login Rejoindre