Variables, tipos y seguridad
let vs var, los tipos básicos de Swift, inferencia de tipos e interpolación de strings. La base sólida sobre la que se construye todo lo demás.
Swift es un lenguaje de tipado fuerte y seguro: cada valor tiene un tipo, y el compilador te protege de mezclarlos por error. Lejos de estorbar, esa seguridad es lo que hace que las apps de Swift fallen menos. Empecemos por dominarla.
- Declarar constantes (
let) y variables (var). - Los tipos básicos: Int, Double, String, Bool.
- La inferencia de tipos y cuándo anotarlos.
- Interpolación y seguridad de tipos.
let vs var: constantes y variables
En Swift declaras valores con let (constante, no cambia) o var (variable, puede cambiar):
let pi = 3.14159 // constante: no se puede reasignarvar contador = 0 // variable: sí se puedecontador = contador + 1// pi = 3.15 // error de compilación: 'pi' es letPrefiere let siempre que puedas
La regla de oro en Swift: usa let por defecto y var solo cuando de verdad necesites cambiar el valor. El compilador incluso te avisa si declaras un var que nunca cambia. Esto no es pedantería: el código con constantes es más fácil de razonar porque sabes que esos valores no se moverán bajo tus pies. Menos estado mutable, menos bugs.
Los tipos básicos
let entero: Int = 42let decimal: Double = 3.14let texto: String = "Hola"let verdadero: Bool = trueInt
Números enteros: 42, -7, 1000. El tipo por defecto para contar.
Double
Números con decimales: 3.14, -0.5. Precisión doble.
String
Texto: “Hola”. Con soporte completo de Unicode y emoji.
Bool
Verdadero o falso: true / false. La base de la lógica.
Inferencia de tipos
Swift deduce el tipo por el valor, así que casi nunca necesitas anotarlo:
let edad = 30 // Swift infiere Intlet altura = 1.75 // Swift infiere Doublelet nombre = "Ana" // Swift infiere Stringlet activo = true // Swift infiere BoolAnota el tipo solo cuando quieras forzar uno distinto al inferido, o cuando declaras sin valor inicial:
let precio: Double = 10 // sin el ': Double' sería Intvar mensaje: String // declarada ahora, asignada despuésmensaje = "Listo"Swift no convierte tipos por ti
A diferencia de otros lenguajes, Swift no mezcla tipos numéricos automáticamente. Sumar un Int y un Double da error; tienes que convertir explícitamente:
let a = 5 // Intlet b = 2.0 // Double// let c = a + b // error: no compilalet c = Double(a) + b // BIEN: conviertes a antes de sumarEs más verboso, sí, pero elimina toda una clase de bugs sutiles de conversión.
Interpolación de strings
Inserta valores dentro de un texto con \(...):
let usuario = "William"let mensajes = 5print("Hola \(usuario), tienes \(mensajes) mensajes.")// Hola William, tienes 5 mensajes.// Puedes meter expresiones enteras:print("El doble es \(mensajes * 2).")Strings de varias líneas
Con triples comillas:
let poema = """ Roses are red, Violets are blue, Swift is safe, and so are you. """Practica los cimientos
En un Playground:
- Declara tu edad como
lety tu ciudad comovar. - Cambia la ciudad (funciona) e intenta cambiar la edad (verás el error).
- Crea un
Inty unDoubley súmalos convirtiendo el tipo. - Imprime una frase con interpolación que incluya una operación matemática.