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
- Fonctions qui prennent un type
- Structures de données génériques
- @TypeOf et réflexion sur les types
- Paramètres anytype