0Pricing
Swift Academy · Lección

Fundamentos de closures y captura

Comprenda la sintaxis de las closures, los argumentos abreviados, las trailing closures, las listas de captura y la diferencia entre escaping y non-escaping.

Fundamentos de closures y captura es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 1 de 3. 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 3 lecciones en total.

Introducción

Esta lección presenta las closures: bloques de código independientes que puede pasar de un lugar a otro. Explore la sintaxis, los argumentos abreviados, las trailing closures, las listas de captura y las closures escapantes y no escapantes.

Sintaxis de las closures

Las closures se parecen a funciones ligeras. Sintaxis: { (params) -> Return in ... }.

let greet = { (name: String) -> String in
    return "Hello, \\(name)"
}
print(greet("Ada"))

Argumentos abreviados

Swift proporciona argumentos abreviados como $0 y $1 para simplificar las closures.

let doubled = [1,2,3].map { $0 * 2 }
print(doubled)

Trailing closure

Si una closure es el último argumento, puede escribirla fuera de los paréntesis: es una trailing closure.

func operate(_ x: Int, _ y: Int, _ f: (Int,Int)->Int) -> Int {
    return f(x,y)
}
let sum = operate(2,3) { $0 + $1 }
print(sum)

Aspectos básicos de la captura

Las closures capturan valores de su ámbito circundante, como un contador acumulativo.

func makeCounter() -> () -> Int {
    var count = 0
    return {
        count += 1
        return count
    }
}
let counter = makeCounter()
print(counter())  // 1
print(counter())  // 2

Listas de captura y closures escapantes

Use listas de captura como [weak self] para evitar ciclos de retención. De forma predeterminada, las closures son no escapantes; marque @escaping si se almacenan después de la llamada.

class Greeter {
    var name = "Ada"
    lazy var greet: () -> Void = { [weak self] in
        print("Hello", self?.name ?? "?")
    }
}
let g = Greeter()
g.greet()

Pregunta sobre las listas de captura

Comprobación rápida: ¿Cuál es la función de una lista de captura?

Resumen

Resumen: Las closures son bloques de código insertados directamente. Aprenda su sintaxis, los argumentos abreviados y las trailing closures, y controle la captura mediante listas. Las closures escapantes sobreviven a la llamada; las no escapantes son el comportamiento predeterminado.

Preguntas frecuentes

¿La lección «Fundamentos de closures y captura» es gratis?

Sí — el texto completo de «Fundamentos de closures y captura» 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 3 lecciones en total.

¿Qué aprenderé en «Fundamentos de closures y captura»?

Comprenda la sintaxis de las closures, los argumentos abreviados, las trailing closures, las listas de captura y la diferencia entre escaping y non-escaping. 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 1 de 3.

¿Cuánto tiempo toma la lección «Fundamentos de closures y captura»?

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. Fundamentos de closures y captura
  2. Listas de captura: weak/unowned y captura de valores
  3. Escaping frente a non-escaping y autoclosures
← Volver a Swift Academy