Parámetros anytype
Acepte cualquier argumento mediante duck typing.
Parámetros anytype es una lección gratuita de Zig Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Zig Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Zig Academy incluye 4 lecciones en total.
Acepte cualquier cosa con anytype
A veces no quiere indicar el tipo en absoluto. Declare un parámetro como anytype y Zig inferirá su tipo a partir del argumento. 🦆
fn show(x: anytype) void {}El tipo se infiere en la llamada
Con anytype no hay ningún parámetro de tipo inicial. El argumento de cada llamada determina el tipo concreto de esa especialización.
show(42);
show(true);Esto es duck typing
Zig solo comprueba que las operaciones del cuerpo funcionen con el argumento que pase. Si tiene la forma adecuada, es compatible. Eso es el duck typing.
Recupere el tipo si lo necesita
Dentro de la función todavía puede obtener el tipo mediante @TypeOf y utilizarlo después para variables locales o valores de retorno.
fn dup(x: anytype) @TypeOf(x) {
return x;
}Ideal para funciones auxiliares de estilo print
Las funciones que trabajan con muchas formas aprovechan anytype. El propio print de Zig acepta una tupla de argumentos anytype para formatearlos.
std.debug.print("{any}\n", .{x});Las restricciones provienen del cuerpo
No existe una interfaz explícita. Si dentro llama a x.len, solo se compilarán los argumentos que realmente tengan un campo len.
fn size(x: anytype) usize {
return x.len;
}Los errores son específicos de cada especialización
Si una persona que llama pasa un tipo que el cuerpo no puede gestionar, Zig informa del error en ese sitio de llamada e indica el tipo exacto que falló.
Valide las entradas con comptime
Para obtener errores más claros, puede inspeccionar pronto el tipo con @typeInfo y rechazar la forma incorrecta mediante una comprobación en tiempo de compilación.
anytype frente a comptime T: type
Utilice comptime T: type cuando necesite nombrar el tipo de antemano; prefiera anytype cuando la inferencia y la flexibilidad sean más importantes.
Sigue sin haber coste en tiempo de ejecución
Como cualquier elemento genérico de Zig, una función anytype se especializa en tiempo de compilación, por lo que la flexibilidad inferida no cuesta nada cuando se ejecuta el programa.
Combine anytype con tipos con nombre
Una función puede combinar ambos estilos: un parámetro anytype para entradas flexibles junto con parámetros tipados normales para datos fijos.
fn join(sep: u8, x: anytype) void {
_ = sep;
_ = x;
}Comprobación rápida
Escribe fn show(x: anytype). ¿Cómo decide Zig el tipo concreto de x?
Resumen
La palabra clave anytype permite que un parámetro acepte cualquier argumento; el tipo se infiere y el cuerpo se comprueba en cada llamada. Es el duck typing flexible de Zig. 🎯
Aprende Zig con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 30
- Lecciones
- 120
Preguntas frecuentes
¿La lección «Parámetros anytype» es gratis?
Sí — el texto completo de «Parámetros anytype» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Zig Academy, actualiza a CoddyKit PRO. El curso de Zig Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Parámetros anytype»?
Acepte cualquier argumento mediante duck typing. Practicas Zig Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Zig Academy?
No se requiere experiencia previa. Zig Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Parámetros anytype»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Zig Academy?
Sí. Cada lección de Zig Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Funciones que reciben un tipo
- Estructuras de datos genéricas
- @TypeOf y reflexión de tipos
- Parámetros anytype