0Pricing
Mojo Academy · Leçon

Fonctions génériques sur les traits

Écrivez une fonction pour de nombreux types.

Fonctions génériques sur les traits est une leçon Mojo Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Mojo Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Mojo Academy comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

One Function, Many Types

The real power of traits is generic code: write a function once and it works for every conforming type. 🚀

A Trait as a Bound

You use a trait as a bound on a generic parameter, promising the type has the methods you call.

Generic Parameter Syntax

Inside square brackets you name a type parameter and the trait it must satisfy, then use it like any type.

fn announce[T: Greetable](item: T):
    print(item.greet())

Calling Trait Methods

Within the function you may call any method the trait guarantees. The compiler knows greet exists on T.

Works for Every Conformer

Pass a Dog or a Robot to the same function. Both conform to Greetable, so both are accepted seamlessly.

announce(Dog("Rex"))
announce(Robot())

Type Safety Stays

Generics are not loose. If a type does not satisfy the bound, the compiler refuses it before the program runs.

No Runtime Penalty

Mojo specializes generic code at compile time, generating a fast version per type. Flexibility costs no speed.

Less Duplication

Without generics you would copy a function for each type. A trait bound lets one definition serve them all, cutting duplication.

Multiple Bounds

A parameter can require several traits at once, ensuring the type has every capability the function needs.

Designing Around Traits

Good Mojo APIs ask for the smallest trait they need. Functions stay flexible while expressing exact requirements.

The Whole Picture

Trait, conformance, and generics combine: define a contract, implement it, then write one reusable function over it.

fn print_all[T: Stringable](x: T):
    print(String(x))

Quick Check

Why use a trait bound on a generic function?

Recap

Generic functions with a trait bound work across all conforming types, staying type-safe and fast. You now write reusable Mojo! 🎉

Questions Fréquemment Posées

La leçon « Fonctions génériques sur les traits » est-elle gratuite ?

Oui — le texte complet de « Fonctions génériques sur les traits » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Mojo Academy, passe à CoddyKit PRO. Le cours Mojo Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Fonctions génériques sur les traits » ?

Écrivez une fonction pour de nombreux types. Tu pratiques Mojo Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Mojo Academy ?

Aucune expérience préalable n'est requise. Mojo Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Fonctions génériques sur les traits » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Mojo Academy ?

Oui. Chaque leçon Mojo Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Qu’est-ce qu’un trait ?
  2. Rendre une structure conforme à un trait
  3. Traits intégrés comme Copyable
  4. Fonctions génériques sur les traits
← Retour à Mojo Academy