wandres.dev
FUNDAMENTOS · tipos, opcionales, closures

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.

⏱ 13 min

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.

🎯 Al terminar esta lección sabrás
  • 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 reasignar
var contador = 0      // variable: sí se puede
contador = contador + 1

// pi = 3.15          // ❌ error de compilación: 'pi' es let
Prefiere 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 = 42
let decimal: Double = 3.14
let texto: String = "Hola"
let verdadero: Bool = true
🔢

Int

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 Int
let altura = 1.75      // Swift infiere Double
let nombre = "Ana"     // Swift infiere String
let activo = true      // Swift infiere Bool

Anota 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 Int
var mensaje: String            // declarada ahora, asignada después
mensaje = "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           // Int
let b = 2.0         // Double
// let c = a + b    // ❌ error
let c = Double(a) + b   // ✅ conviertes a antes de sumar

Es 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 = 5
print("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:

  1. Declara tu edad como let y tu ciudad como var.
  2. Cambia la ciudad (funciona) e intenta cambiar la edad (verás el error).
  3. Crea un Int y un Double y súmalos convirtiendo el tipo.
  4. Imprime una frase con interpolación que incluya una operación matemática.