Swift Academy · Lección

guard let para salir anticipadamente

Desenvuelva valores y salga anticipadamente si falla para reducir el anidamiento.

Lección 2 de 413 pasos

guard let para salir anticipadamente es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 2 de 4. 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 4 lecciones en total.

La idea de guard

guard comprueba una condición y, si no se cumple, sale del ámbito actual. Está diseñado para salidas tempranas que mantienen el camino principal sin sangría adicional.

func greet(_ name: String?) {
    guard let name else {
        print("No name")
        return
    }
    print("Hello, \(name)")
}
greet("Ada")
greet(nil)

Sintaxis de guard let

Escriba guard let value = optional else { return }. A diferencia de if let, el valor desempaquetado permanece en el ámbito después de guard.

func double(_ text: String) {
    guard let n = Int(text) else {
        print("Not a number")
        return
    }
    print(n * 2)
}
double("8")
double("x")

El valor permanece disponible

Como guard sale cuando falla, el compilador sabe que el valor existe después. Puede usarlo normalmente en el resto de la función.

func length(of text: String?) {
    guard let text else { return }
    let count = text.count
    print(count)
}
length("hello")

El bloque else debe salir

El bloque else de un guard debe salir del ámbito actual: return, break, continue o throw. El compilador lo exige.

func process(_ value: Int?) {
    guard let value else {
        return
    }
    print("Processing \(value)")
}
process(99)

guard let abreviado

Al igual que if let, guard admite una forma abreviada: guard let name else { ... } cuando los nombres coinciden.

func show(_ name: String?) {
    guard let name else {
        print("missing")
        return
    }
    print(name)
}
show("Kai")

Camino feliz plano

La gran ventaja de guard es tener un camino feliz plano y legible. Compare las pirámides anidadas de if let con una serie de guards.

func register(name: String?, age: Int?) {
    guard let name else { return }
    guard let age else { return }
    print("\(name) is \(age)")
}
register(name: "Mia", age: 28)

Comprobación de condiciones simples con guard

Guard funciona con cualquier condición Bool, no solo con opcionales. guard count > 0 else { return } permite salir pronto.

func divide(_ a: Int, by b: Int) {
    guard b != 0 else {
        print("Cannot divide by zero")
        return
    }
    print(a / b)
}
divide(10, by: 2)
divide(10, by: 0)

Guard en bucles

Dentro de un bucle, un guard puede usar continue para omitir una iteración cuando faltan datos.

let inputs = ["1", "x", "3"]
for item in inputs {
    guard let n = Int(item) else { continue }
    print(n * 10)
}

Varias vinculaciones en un guard

Un solo guard puede desempaquetar varios opcionales, separados por comas. Todos deben completarse correctamente para continuar.

func combine(_ a: String?, _ b: String?) {
    guard let a, let b else { return }
    print(a + b)
}
combine("foo", "bar")

Guard con comprobaciones similares a where

Puede añadir condiciones booleanas después de una vinculación, separándolas con una coma, para precisar cuándo se cumple el guard.

func validate(_ text: String?) {
    guard let text, !text.isEmpty else {
        print("invalid")
        return
    }
    print("ok: \(text)")
}
validate("")
validate("hi")

Cuándo elegir guard

Use guard para las precondiciones al principio de una función y if let cuando solo necesite el valor brevemente dentro de una rama.

func area(width: Int?, height: Int?) -> Int {
    guard let width, let height else { return 0 }
    return width * height
}
print(area(width: 3, height: 4))

Comprobación rápida

Pruebe guard let.

Repaso: guard let para salir pronto

guard let value else { return } desempaqueta un opcional y mantiene el valor en el ámbito después. Su bloque else debe salir, lo que mantiene el camino feliz plano y legible.

func f(_ x: Int?) {
    guard let x else { return }
    print(x)
}
f(5)
Gratis para empezar

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 «guard let para salir anticipadamente» es gratis?

Sí — el texto completo de «guard let para salir anticipadamente» 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 4 lecciones en total.

¿Qué aprenderé en «guard let para salir anticipadamente»?

Desenvuelva valores y salga anticipadamente si falla para reducir el anidamiento. 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 2 de 4.

¿Cuánto tiempo toma la lección «guard let para salir anticipadamente»?

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

  1. if let y vinculación abreviada
  2. guard let para salir anticipadamente
  3. Vinculación de varios opcionales
  4. Patrones opcionales en switch y for
← Volver a Swift Academy