Aller au contenu principal
U/
Traits
rust

impl Display pour une struct Point

Définir la struct Point { x: i32, y: i32 } et implémenter std::fmt::Display pour qu'elle s'affiche sous la forme (x, y) avec println!.

25 minPublié le 20 mai 2026Proposé par Anonyme

Défi

// Lisez attentivement, codez sur votre machine

Énoncé

Déclarer la struct Point { x: i32, y: i32 }. Implémenter le trait std::fmt::Display pour Point de sorte que println!("{}", p) produise la chaîne (x, y)x et y sont les valeurs des champs. La méthode fmt écrit dans le Formatter via write!. Dans main, créer deux instances de Point et les afficher avec println! pour valider l'implémentation.

Contraintes

  • Compilé avec rustc --edition=2021 main.rs.
  • Implémenter std::fmt::Display (pas seulement Debug).
  • Le format de sortie est exactement (x, y) avec les parenthèses, la virgule et l'espace.
  • Ne pas #[derive(Display)] : l'implémentation manuelle est requise.
  • La struct peut dériver Debug librement.

Exemple

Pour les points de coordonnées (3, -7) puis (0, 0), sortie attendue :

(3, -7)
(0, 0)

Si println!("{}", p) ne compile pas, c'est que seul Debug a été implémenté.

Espace solution
// À garder en tête
  • D'abord, faire marcher

    On ne cherche pas à optimiser : d'abord, on fait marcher le truc. Optimiser vient ensuite — et ça aussi, ça s'apprend. (Si un défi porte sur l'optimisation, son énoncé le précise.)

  • Pas de mauvaise réponse

    Il n'y a pas de mauvaise réponse à un défi. Le but, c'est de le faire. Ce qui compte, c'est de s'entraîner.

  • Trop dur ? Au suivant

    Un défi te résiste ? N'hésite pas à en prendre un autre. Ils seront encore là demain.