Funciones genéricas sobre traits
Escriba una función para muchos tipos.
Funciones genéricas sobre traits es una lección gratuita de Mojo 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 Mojo Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Mojo Academy incluye 4 lecciones en total.
Una función, muchos tipos
El verdadero poder de los traits es el código genérico: escriba una función una sola vez y funcionará con cualquier tipo conforme. 🚀
Un trait como restricción
Use un trait como restricción de un parámetro genérico para indicar que el tipo tiene los métodos que usted invoca.
Sintaxis de los parámetros genéricos
Dentro de los corchetes, indique un parámetro de tipo y el trait que debe satisfacer; después, úselo como cualquier tipo.
fn announce[T: Greetable](item: T):
print(item.greet())Llamar a métodos del trait
Dentro de la función puede llamar a cualquier método que garantice el trait. El compilador sabe que greet existe en T.
Funciona con cualquier tipo conforme
Puede pasar un Dog o un Robot a la misma función. Ambos se ajustan a Greetable, por lo que los dos se aceptan sin problemas.
announce(Dog("Rex"))
announce(Robot())La seguridad de tipos se mantiene
Los genéricos no son imprecisos. Si un tipo no satisface la restricción, el compilador lo rechaza antes de ejecutar el programa.
Sin penalización en tiempo de ejecución
Mojo especializa el código genérico en tiempo de compilación y genera una versión rápida para cada tipo. La flexibilidad no cuesta velocidad.
Menos duplicación
Sin genéricos, tendría que copiar una función para cada tipo. Una restricción basada en un trait permite que una sola definición sirva para todos y reduce la duplicación.
Varias restricciones
Un parámetro puede exigir varios traits a la vez para garantizar que el tipo tenga todas las capacidades que necesita la función.
Diseñar en torno a traits
Las buenas API de Mojo solicitan el trait más pequeño que necesitan. Las funciones siguen siendo flexibles y expresan requisitos precisos.
La visión completa
Trait, conformidad y genéricos se combinan: defina un contrato, impleméntelo y escriba después una función reutilizable basada en él.
fn print_all[T: Stringable](x: T):
print(String(x))Comprobación rápida
¿Por qué usar una restricción basada en un trait en una función genérica?
Repaso
Las funciones genéricas con una restricción basada en un trait funcionan con todos los tipos conformes, manteniendo la seguridad de tipos y la velocidad. ¡Ya puede escribir código Mojo reutilizable! 🎉
Aprende Mojo 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 «Funciones genéricas sobre traits» es gratis?
Sí — el texto completo de «Funciones genéricas sobre traits» 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 Mojo Academy, actualiza a CoddyKit PRO. El curso de Mojo Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Funciones genéricas sobre traits»?
Escriba una función para muchos tipos. Practicas Mojo 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 Mojo Academy?
No se requiere experiencia previa. Mojo 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 «Funciones genéricas sobre traits»?
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 Mojo Academy?
Sí. Cada lección de Mojo 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
- ¿Qué es un trait?
- Hacer que una struct cumpla un trait
- Traits integrados como Copyable
- Funciones genéricas sobre traits