Funciones y tipos genéricos
Escriba funciones y tipos genéricos con parámetros de tipo (por ejemplo, ). Observe cómo el compilador infiere los tipos y mantiene el código seguro y reutilizable.
Funciones y tipos genéricos es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 1 de 3. 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 Swift Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Swift Academy incluye 3 lecciones en total.
¿Por qué usar genéricos?
Los genéricos permiten escribir una sola función o tipo que funciona con muchos tipos sin perder la seguridad de tipos. Verá <T> para los parámetros de tipo y cómo la inferencia simplifica las llamadas.
Función genérica
Una función genérica usa un parámetro de tipo (<T>). El compilador comprueba los tipos en cada llamada.
// Generic swap for any type T
func swapValues<T>(_ a: inout T, _ b: inout T) {
let temp = a
a = b
b = temp
}
var x = 1, y = 2
swapValues(&x, &y)
print(x, y) // 2 1
var s1 = "A", s2 = "B"
swapValues(&s1, &s2)
print(s1, s2) // B ATipo genérico
Los tipos también pueden ser genéricos: declare Stack<Element> y reutilícelo para Int, String y muchos tipos más.
// A minimal generic stack
struct Stack<Element> {
private var items: [Element] = []
mutating func push(_ x: Element) { items.append(x) }
mutating func pop() -> Element? { items.popLast() }
var top: Element? { items.last }
}
var intStack = Stack<Int>()
intStack.push(10); intStack.push(20)
print(intStack.top ?? -1) // 20
var textStack = Stack<String>()
textStack.push("hi"); textStack.push("bye")
print(textStack.pop() ?? "?")Inferencia de tipos
Swift a menudo infiere los tipos genéricos, por lo que rara vez debe especificarlos explícitamente en las llamadas.
// The compiler infers T from arguments/assignments
func makePair<T>(_ a: T, _ b: T) -> (T, T) { (a, b) }
let pair1 = makePair(1, 2) // T inferred as Int
let pair2 = makePair("a", "b") // T inferred as String
print(pair1, pair2)Evitar la duplicación
Sin genéricos, repetiría el código para cada tipo. Los genéricos eliminan la duplicación y mantienen las comprobaciones estáticas.
// Non-generic overloads would duplicate logic:
func eqInt(_ a: Int, _ b: Int) -> Bool { a == b }
func eqStr(_ a: String, _ b: String) -> Bool { a == b }
// A single generic can replace both:Notas y nombres
Notas:
- Use nombres claros: T, Element o nombres específicos del dominio.
- Mantenga las API pequeñas y centradas.
- A continuación: añada restricciones con where para limitar T cuando sea necesario.
Significado de <T>
Comprobación rápida: ¿Qué significa <T> en una función genérica?
Resumen
Resumen: Defina funciones genéricas con <T> y cree tipos genéricos como Stack<Element>. Swift infiere los tipos en las llamadas, lo que mantiene el código reutilizable y seguro.
Preguntas frecuentes
¿La lección «Funciones y tipos genéricos» es gratis?
Sí — el texto completo de «Funciones y tipos genéricos» 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 Swift Academy, actualiza a CoddyKit PRO. El curso de Swift Academy incluye 3 lecciones en total.
¿Qué aprenderé en «Funciones y tipos genéricos»?
Escriba funciones y tipos genéricos con parámetros de tipo (por ejemplo, ). Observe cómo el compilador infiere los tipos y mantiene el código seguro y reutilizable. Practicas Swift 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 Swift Academy?
No se requiere experiencia previa. Swift 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 1 de 3.
¿Cuánto tiempo toma la lección «Funciones y tipos genéricos»?
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 Swift Academy?
Sí. Cada lección de Swift 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 y tipos genéricos
- Restricciones (where) e inferencia de tipos
- Algoritmos genéricos sobre colecciones