Types d’extension pour des wrappers sans coût
Encapsuler un type sans surcharge à l’exécution
Types d’extension pour des wrappers sans coût est une leçon Dart 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 Dart Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Dart Academy comprend 4 leçons au total.
Un outil différent
Un type d’extension est une fonctionnalité plus récente : il enveloppe un type existant pour lui donner une nouvelle interface, sans coût lors de l’exécution.
Enveloppez sans créer d’objet supplémentaire
Contrairement à une véritable classe enveloppe, un type d’extension n’ajoute aucun objet lors de l’exécution. À l’exécution, il est simplement la valeur sous-jacente.
extension type UserId(int id) {}Le type de représentation
La valeur entre parenthèses est le type de représentation. Ici, UserId est en réalité un int portant un nom plus sûr.
extension type Meters(double value) {}Créez-en un facilement
Vous construisez un type d’extension comme vous appelez un constructeur, en lui transmettant directement la valeur sous-jacente.
var id = UserId(42);
var d = Meters(3.5);Ajoutez des méthodes sûres
Dans le corps, vous pouvez ajouter des méthodes et des accesseurs qui manipulent la valeur enveloppée et lui donnent une véritable signification.
extension type Meters(double value) {
Meters plus(Meters o) => Meters(value + o.value);
}Plus fort qu’un typedef
Un typedef n’est qu’un alias, tandis qu’un type d’extension est un type distinct. Vous ne pouvez pas mélanger par erreur un UserId et un int ordinaire.
int raw = 42;
// UserId u = raw; // error: not interchangeableMasquez l’API sous-jacente
Par défaut, un type d’extension masque les membres du type enveloppé. Seules les méthodes que vous exposez peuvent donc être appelées.
var m = Meters(2.0);
// m.toStringAsFixed(2); // not available unless exposedOu utilisez implements pour les exposer
Ajoutez implements pour transmettre les membres sous-jacents et permettre aux appelants d’utiliser à la fois votre API et le type de base.
extension type Score(int value) implements int {}
print(Score(9) + 1); // 10Aucun surcoût à l’exécution
Comme aucun objet réel n’est créé, les types d’extension ne coûtent rien lors de l’exécution. Vous bénéficiez gratuitement de la sûreté de typage.
Idéal pour les identifiants métier
Ils sont particulièrement utiles pour les identifiants typés comme UserId ou Email, car ils vous empêchent de transmettre le mauvais int au mauvais emplacement.
void load(UserId id) {}
load(UserId(7)); // load(7) would not compileExtensions et types d’extension
Une extension ajoute des méthodes à un type partagé par tous ; un type d’extension crée un nouveau type distinct autour d’une valeur.
Vérification rapide
Dernière vérification : qu’est-ce qui rend les types d’extension particuliers ?
Récapitulatif : les types d’extension
Vous avez découvert les types d’extension : des enveloppes distinctes et sans coût autour d’un type de représentation, idéales pour des identifiants et des unités sûrs, sans surcoût à l’exécution. 🏁
Apprends Dart avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 30
- Leçons
- 120
Questions Fréquemment Posées
La leçon « Types d’extension pour des wrappers sans coût » est-elle gratuite ?
Oui — le texte complet de « Types d’extension pour des wrappers sans coût » 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 Dart Academy, passe à CoddyKit PRO. Le cours Dart Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Types d’extension pour des wrappers sans coût » ?
Encapsuler un type sans surcharge à l’exécution Tu pratiques Dart 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 Dart Academy ?
Aucune expérience préalable n'est requise. Dart 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 « Types d’extension pour des wrappers sans coût » ?
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 Dart Academy ?
Oui. Chaque leçon Dart 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
- Écrire votre première extension
- Extensions sur les génériques
- Membres d’extension statiques et conflits
- Types d’extension pour des wrappers sans coût