Contenido del curso
Fundamentos de programación iOS
- 3

Variables, constantes y tipos de datos en Swift
18:55 min - 4

Condicionales en Swift con if y else
16:58 min - 5

Funciones en Swift con parámetros y return
10:37 min - 6

Variables opcionales en Swift
09:29 min - 7

Arrays en Swift: declara, accede e inserta
10:28 min - 8

Eliminar y buscar elementos en arrays Swift
05:41 min - 9

Sets en Swift: sin orden ni duplicados
Viendo ahora - 10

Operaciones entre sets en Swift
05:22 min - 11

Diccionarios en Swift para datos complejos
10:54 min - 12

Ciclo while en Swift desde cero
06:48 min - 13

Ciclo for en Swift para buscar datos
09:38 min - 14

Batalla Pokémon con while en Swift
10:45 min
POO en iOS
- 15

Qué es la programación orientada a objetos
06:56 min - 16

Creación de Structs en Swift para Gestión de Materias
11:16 min - 17

Herencia en Swift: class vs struct
13:27 min - 18

Uso de Enumerables (Enums) en Swift para Datos Limitados
09:27 min - 19

Protocolos en Swift como contratos de código
15:12 min - 20

map, filter y reduce con arreglos en Swift
10:53 min - 21

Prueba final del Students Manager en Swift
05:40 min
Manejo de errores y programación segura
Programación en el ecosistema de Apple
Sets en Swift: sin orden ni duplicados
Resumen
Los sets en Swift son colecciones que guardan elementos sin orden y sin duplicados, ideales cuando necesitas listas únicas en tu app. Aquí entenderás cómo declararlos, manipularlos y en qué se diferencian de los arrays, con ejemplos prácticos en Xcode pensados para quienes están aprendiendo Swift desde cero.
Qué es un set en Swift y en qué se diferencia de un array
Un set es una lista a la que puedes agregar y quitar elementos, parecida a un arreglo. La diferencia está en dos reglas que cambian todo cómo lo usas.
- Los elementos no están ordenados, así que no puedes acceder a ellos por posición.
- No admite elementos duplicados, solo guarda valores únicos.
En la clase anterior viste que un array sí permite repetir manzanas. En un set, esa segunda manzana simplemente no entra. Y aquí viene lo interesante: el orden en que aparecen los elementos al imprimir el conjunto puede cambiar, porque Swift los acomoda como mejor le parece.
¿Para qué sirve un set en Swift? Sirve para guardar colecciones de valores únicos donde el orden no importa, como una lista de estudiantes inscritos en una materia donde nadie puede repetirse.
Cómo se declara un set vacío en Swift
A diferencia de un array, cuando creas un set vacío necesitas decirle explícitamente qué tipo de dato va a contener. Si no, el compilador no sabe qué esperar.
La primera forma usa anotación de tipo antes del igual [01:30]:
swift var animales: Set<String> = Set()
La segunda forma es equivalente, solo cambia la sintaxis:
swift var otrosAnimales = Set<String>()
Ambas declaran un conjunto vacío de strings. La clave está en los signos <> que envuelven el tipo, así Swift sabe qué clase de elementos vas a guardar.
Cómo inicializo un set con datos
También puedes arrancar tu set con valores ya adentro, igual que harías con un array:
swift var animales: Set<String> = ["perro", "gato", "conejo"] print(animales)
Al correr el programa verás algo muy parecido a una lista, pero recuerda: por dentro es un conjunto y se comporta distinto.
Cómo se manipulan los elementos de un set
Swift te da métodos sencillos para contar, agregar y eliminar elementos. Aquí está lo esencial.
Cómo cuento cuántos elementos tiene un set
Usa la propiedad .count para saber el total de elementos [02:50]:
swift let contarAnimales = animales.count let contarOtrosAnimales = otrosAnimales.count
En el ejemplo, animales devuelve 3 y otrosAnimales devuelve 0 porque está vacío.
Cómo agrego elementos con insert
Para sumar un elemento usas .insert():
swift animales.insert("caballo") print(animales)
Swift lo coloca en la posición que él decide, sin un criterio que tú puedas predecir. Si intentas insertar "caballo" otra vez, no pasa nada: el set ignora el duplicado y mantiene los mismos cuatro elementos.
Ahora prueba algo curioso. Inserta "caballo" con c minúscula:
swift animales.insert("caballo")
Esta vez sí lo agrega. ¿Por qué? Porque en programación las mayúsculas y minúsculas son caracteres distintos, así que "Caballo" y "caballo" son strings diferentes para Swift.
¿Un set en Swift distingue mayúsculas de minúsculas? Sí. Cada string se compara carácter por carácter, así que
"Perro"y"perro"se consideran elementos distintos y ambos pueden coexistir en el set.
Cómo elimino elementos de un set
Tienes dos formas. La primera quita un elemento específico con .remove() [05:10]:
swift animales.remove("caballo")
La segunda vacía todo el conjunto con .removeAll():
swift animales.removeAll()
No puedes eliminar por posición, porque los sets no tienen posiciones. Si le pides al set borrar el elemento número 2, simplemente no sabe a cuál te refieres.
Cuándo conviene usar un set en lugar de un array
Imagina que estás construyendo una app que lista estudiantes inscritos en una materia. No tiene sentido que el mismo estudiante aparezca dos veces, así que un set te garantiza esa unicidad sin que tengas que validarla manualmente.
En cambio, si necesitas mantener el orden en que se hicieron las inscripciones o permitir registros duplicados con marcas de tiempo, un array encaja mejor. La regla rápida: usa set cuando el orden no importa y los duplicados no deben existir.
¿Qué otro caso real se te ocurre donde usarías un set, y en cuál preferirías un array? Déjamelo en los comentarios.