AD

¿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 Udemy

Enlace de afiliado. No te cuesta nada extra.

🐦Lecciones de Swift
Lección 29 / 68

Funciones de orden superior (pasar una función como argumento)

En esta lección pasarás un trozo de comportamiento como si fuera un dato.

sorted(by:) recibe una función que compara dos elementos y devuelve si el primero va antes. Cambiando > por < se invierte el orden.

El código de ejemplo ordena unos números de mayor a menor.

Swift permite escribir ese bloque de varias formas cada vez más cortas: con nombres explícitos, con $0 y $1, o incluso pasando solo el operador, sorted(by: >). Las tres hacen lo mismo, y la elección depende de cuánta claridad necesite quien lea.

Hay una regla de estilo que conviene conocer: si el bloque es el último argumento, se puede sacar fuera de los paréntesis. Por eso en Swift se ve nums.sorted { $0 > $1 }. Esa sintaxis es la base de SwiftUI, donde toda la interfaz se describe con bloques encadenados.

Cuando el bloque se guarda para usarlo más tarde, hay que pensar en las capturas: si captura self, puede crear un ciclo de referencias que impida liberar la memoria. Se resuelve con [weak self] en la lista de captura.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 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.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)