Mojo Academy · Lección

Funciones genéricas sobre traits

Escriba una función para muchos tipos.

Lección 4 de 413 pasos

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! 🎉

Gratis para empezar

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

  1. ¿Qué es un trait?
  2. Hacer que una struct cumpla un trait
  3. Traits integrados como Copyable
  4. Funciones genéricas sobre traits
← Volver a Mojo Academy