0Pricing
Zig Academy · Leçon

Paramètres anytype

Acceptez n'importe quel argument grâce au typage canard.

Paramètres anytype est une leçon Zig 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 Zig Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Zig Academy comprend 4 leçons au total.

Accepter n’importe quoi avec anytype

Parfois, vous ne souhaitez pas nommer le type. Déclarez alors un paramètre comme anytype et Zig déduit son type à partir de l’argument. 🦆

fn show(x: anytype) void {}

Le type est déduit lors de l’appel

Avec anytype, il n’y a pas de paramètre de type initial. L’argument de chaque appel détermine le type concret de cette spécialisation.

show(42);
show(true);

C’est le typage structurel implicite

Zig vérifie seulement que les opérations du corps fonctionnent avec l’argument transmis. S’il a la bonne forme, il convient. C’est le typage structurel implicite.

Récupérer le type si nécessaire

Dans la fonction, vous pouvez toujours demander le type avec @TypeOf, puis l’utiliser pour des variables locales ou des valeurs de retour.

fn dup(x: anytype) @TypeOf(x) {
    return x;
}

Idéal pour les fonctions d’affichage

Les fonctions qui travaillent avec de nombreuses formes apprécient anytype. La fonction d’affichage de Zig accepte elle-même un tuple anytype d’arguments à formater.

std.debug.print("{any}\n", .{x});

Les contraintes viennent du corps

Il n’existe pas d’interface explicite. Si vous appelez x.len à l’intérieur, seuls les arguments qui possèdent réellement un champ len pourront être compilés.

fn size(x: anytype) usize {
    return x.len;
}

Les erreurs sont propres à chaque spécialisation

Si un appelant transmet un type que le corps ne peut pas gérer, Zig signale l’erreur à cet endroit d’appel et indique le type exact qui a échoué.

Valider les entrées avec comptime

Pour obtenir des erreurs plus claires, vous pouvez inspecter rapidement le type avec @typeInfo et rejeter la forme incorrecte à l’aide d’une vérification à la compilation.

anytype ou comptime T: type

Utilisez comptime T: type lorsque vous devez nommer le type à l’avance. Préférez anytype lorsque l’inférence et la flexibilité sont prioritaires.

Toujours aucun coût à l’exécution

Comme tout générique Zig, une fonction anytype est spécialisée à la compilation. La flexibilité de l’inférence ne coûte donc rien lors de l’exécution du programme.

Mélanger anytype et les types nommés

Une fonction peut combiner les deux styles : un paramètre anytype pour une entrée flexible, avec des paramètres typés ordinaires pour les données fixes.

fn join(sep: u8, x: anytype) void {
    _ = sep;
    _ = x;
}

Vérification rapide

Vous écrivez fn show(x: anytype). Comment Zig détermine-t-il le type concret de x ?

Récapitulatif

Le mot-clé anytype permet à un paramètre d’accepter n’importe quel argument, son type étant déduit et son corps vérifié à chaque appel. C’est le typage structurel implicite flexible de Zig. 🎯

Questions Fréquemment Posées

La leçon « Paramètres anytype » est-elle gratuite ?

Oui — le texte complet de « Paramètres anytype » 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 Zig Academy, passe à CoddyKit PRO. Le cours Zig Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Paramètres anytype » ?

Acceptez n'importe quel argument grâce au typage canard. Tu pratiques Zig 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 Zig Academy ?

Aucune expérience préalable n'est requise. Zig 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 « Paramètres anytype » ?

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 Zig Academy ?

Oui. Chaque leçon Zig 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. Fonctions qui prennent un type
  2. Structures de données génériques
  3. @TypeOf et réflexion sur les types
  4. Paramètres anytype
← Retour à Zig Academy