Jerarquías Sequence/Collection
Comprenda Sequence frente a Collection (y Bidirectional/RandomAccess): garantías de recorrido, índices y situaciones en las que los algoritmos requieren protocolos más avanzados.
Jerarquías Sequence/Collection 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.
Mapa de la jerarquía
La jerarquía de iterables:
- Sequence: iteración mediante un iterador (puede ser de un solo paso).
- Collection: permite varios recorridos y tiene índices (startIndex/endIndex).
- BidirectionalCollection: permite mover los índices hacia atrás.
- RandomAccessCollection: permite avanzar entre índices en tiempo constante.
Iteración de Sequence
Sequence garantiza que puede iterar los elementos en orden; no exige nada sobre los índices ni sobre poder realizar varios recorridos.
let seq = [1, 2, 3] as AnySequence<Int> // wrap as AnySequence for demo
for x in seq { print(x, terminator: " ") }
print("")Índices de Collection
Collection añade índices y permite recorrer los elementos varias veces. Puede volver a iterar de forma segura.
let arr = ["a","b","c"] // Array is a Collection
print(arr.startIndex == 0) // true for Array
print(arr.endIndex == 3) // endIndex is "one past last"
for i in arr.indices { print(arr[i], terminator: " ") }
print("")
// Iterate again (multi-pass)
for ch in arr { print(ch, terminator: " ") }
print("")Capacidades ampliadas
BidirectionalCollection permite mover los índices hacia atrás. RandomAccessCollection permite avanzar entre índices en tiempo constante (por ejemplo, Array).
let text = "Swift" // String is a BidirectionalCollection
var i = text.index(before: text.endIndex) // move backward
print(text[i]) // last character
// Array is RandomAccessCollection: jumping indices is cheap
let nums = [10,20,30,40]
print(nums[nums.startIndex.advanced(by: 2)]) // 30Sequence personalizada
Una Sequence personalizada puede ser de un solo paso. Después de iterar una vez, el iterador puede quedar agotado.
struct Countdown: Sequence, IteratorProtocol {
var current: Int
mutating func next() -> Int? {
guard current >= 0 else { return nil }
defer { current -= 1 }
return current
}
}
var cd = Countdown(current: 3)
for n in cd { print(n, terminator: " ") } // 3 2 1 0
print("")
// cd is exhausted; iterating again yields nothing (single-pass behavior)Elegir el protocolo adecuado
Directrices:
- Utilice algoritmos genéricos sobre Sequence cuando sea suficiente un solo recorrido.
- Exija Collection para realizar varios recorridos o utilizar operaciones con índices.
- Prefiera RandomAccessCollection para algoritmos que salten entre índices con frecuencia (por ejemplo, la búsqueda binaria).
Collection frente a Sequence
Comprobación rápida: ¿Qué añade Collection a Sequence?
Resumen
Resumen: Sequence → iteración básica. Collection → índices y varios recorridos. Bidirectional → permite retroceder. RandomAccess → avances entre índices en tiempo constante. Elija el protocolo más pequeño que se ajuste a su algoritmo.
Aprende Swift 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
- 122
- Lecciones
- 409
Preguntas frecuentes
¿La lección «Jerarquías Sequence/Collection» es gratis?
Sí — el texto completo de «Jerarquías Sequence/Collection» 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 «Jerarquías Sequence/Collection»?
Comprenda Sequence frente a Collection (y Bidirectional/RandomAccess): garantías de recorrido, índices y situaciones en las que los algoritmos requieren protocolos más avanzados. 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 «Jerarquías Sequence/Collection»?
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
- Jerarquías Sequence/Collection
- Map/Filter/Reduce y secuencias lazy
- Iteradores personalizados y consejos de rendimiento