¿Ya dominas lo básico? Un curso estructurado de Swift es la vía rápida para dar el salto.
Ver cursos de Swift en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Tu primera salida (print)
- 03Trabajar con variables
- 04Condicionales (la sentencia if)
- 05Repetir con bucles (for-in)
- 06Escribir una función
- 07Trabajar con arrays
- 08Bucles con while
- 09Clases (programación orientada a objetos)
- 10Gestión de errores (do-try-catch)
- 11Ordenar un array
- 12Funciones recursivas
- 13Usar la biblioteca estándar
- 14La sentencia switch
- 15El operador ternario
- 16Herencia (extender una clase)
- 17Escribir comentarios
- 18Operadores lógicos (&&, ||, !)
- 19Constantes (let, y por qué importa)
- 20Partir y unir cadenas (split, joined)
- 21Opcionales (código a prueba de nil)
- 22Buscar en un array (contains, first)
- 23Transformar un array (map)
- 24Arrays bidimensionales (datos en forma de tabla)
- 25Escribir tu propio tipo de error
- 26Valores por defecto en los parámetros
- 27Trabajar con Set
- 28Comprobar que el código es correcto (primer paso hacia las pruebas)
- 29Funciones de orden superior (pasar una función como argumento)
- 30Pilas y colas (estructuras de datos básicas)
- 31Conversión de tipos
- 32Introducción a las expresiones regulares
- 33El algoritmo de búsqueda binaria
- 34Construir un cifrado César
- 35Entender cómo funciona la ordenación de burbuja
- 36Construir y mostrar fechas
- 37Escribir varios casos de prueba juntos
- 38Acelerar cálculos con memoización
- 39Normalizar cadenas (trimmingCharacters, unificar mayúsculas)
- 40Copia superficial y copia profunda
- 41Enumeraciones (enum) básicas
- 42Aplanar un array
- 43Invertir una cadena y detectar palíndromos
- 44Emparejar dos arrays (la operación zip)
- 45Redondear números (rounded)
- 46Cadenas de varias líneas (comillas triples)
- 47Funciones que devuelven varios valores (tuplas)
- 48Calcular el MCD y el MCM (algoritmo de Euclides)
- 49Dar formato a los números
- 50Limpieza con defer
- 51Escribir funciones genéricas
- 52Leer y escribir archivos
- 53Generar números aleatorios
- 54Operadores a nivel de bits
- 55Leer argumentos de la línea de órdenes
- 56Esperar un tiempo determinado (Thread.sleep)
- 57Cuidado con los errores de la coma flotante
- 58Leer de la entrada estándar
- 59FizzBuzz (el ejercicio clásico)
- 60Comprobar si un número es primo
- 61Operaciones de conjuntos (unión, intersección, diferencia)
- 62Convertir entre bases (binario, hexadecimal)
- 63Comprobar el equilibrio de los paréntesis
- 64Comprobar si dos palabras son anagramas
- 65Comprobar si un año es bisiesto
- 66Convertir temperaturas
- 67Descomponer en factores primos
- 68[Aplicado] Un pequeño gestor de inventario
[Aplicado] Un pequeño gestor de inventario
En esta lección juntarás lo aprendido en un programa que gestiona existencias.
Las cantidades se guardan en un diccionario. La sintaxis items["manzana", default: 0] += 10 es la pieza clave: si la clave no existe, usa el valor por defecto, así que funciona igual la primera vez que aparece un artículo.
El código de ejemplo da de alta unos artículos, retira unidades y muestra el resultado.
Ese default: llegó en Swift 4 y sustituye a la versión larga —comprobar si la clave existe, coger el valor o cero, sumar y volver a guardar— por una sola línea. Además es más eficiente, porque accede al diccionario una vez en lugar de tres.
Fíjate en los ! al imprimir: acceder a un diccionario devuelve un opcional. Aquí sabemos que las claves existen, pero en código real habría que usar ?? 0 o comprobar antes. Y falta una validación importante: nada impide que una retirada deje la cantidad en negativo, que es un estado sin sentido y que se propagaría a todos los informes. Quien modifica el dato es quien debe protegerlo.
Un inventario real añadiría persistencia, un histórico de movimientos y control de acceso simultáneo. Y en Swift, lo primero sería envolver el diccionario en una struct con métodos, para que nadie pueda modificarlo saltándose las comprobaciones.
🧪 Este sitio no puede compilar ni ejecutar Swift directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).
🔗 El mismo tema en otros lenguajes
Mira cómo se escribe lo mismo en otro lenguaje.
