Cierres rápidos | audacia
Esta publicación sobre Swift Closures es una continuación de nuestra publicación anterior sobre las funciones de Swift, donde repasamos los conceptos básicos de las funciones de Swift. ¡Entremos en ello!
Contenido
¿Qué es un cierre?
EN cierre se puede considerar como un bloque de código autónomo, normalmente una función, que utiliza referencias de su entorno. La diferencia entre un función y un cierre es que una función necesita ser declarada como función mientras que un cierre no lo hace. Uso de cierres alcancepermitiendo que su función interna tenga acceso a su ámbito de función externo.
¿Qué es el alcance?
Vamos a crear una variable llamada myName y colocarla fuera y dentro de la función getName.
func getName() {
var myName:String = "Christina"
print("This is myName inside the function: " + myName)
}
var myName:String = "Zen"
var scopedName = getName()
print("This is myName outside the function: " + myName)
print(scopedName)
¿Puedes adivinar cuál será el resultado? ¿Cambiará myName o seguirá siendo el mismo?
producción
This is myName inside the function: Christina
This is myName outside the function: Zen
EN alcance en programación es el concepto de dónde se puede acceder a los valores y funciones y estar disponibles dentro de un programa. Observe cómo nuestra variable myName cambia según el alcance que tiene. La variable myName dentro de la función es una habitación variable con ámbito local y está limitado para su uso dentro de su bloque de código, mientras que myName fuera de la función es un variable global con alcance global que se puede utilizar a lo largo de todo el programa.
¿Cómo encajan los cierres en esto? Un cierre es un bloque de código cerrado que puede acceder a referencias a variables en su ámbito externo, manteniendo conexiones con su entorno externo.
¿Cómo escribo un cierre rápido?
¡Escribamos nuestro primer cierre de Swift! Quiero crear una función dentro de otra función que pueda acceder a las referencias de mi función externa. ¿Cómo se ve eso?
Si observa la documentación de Swift, esta es la estructura de cierre de Swift:
{ (parameters) -> returnType in
statements
}
Así es como se escribe un cierre:
let outerSpace = {
var phrase = "What a lovely day!"
func innerSpace(){
print(phrase)
}
innerSpace()
}
outerSpace()
Producción
Observe cómo nuestra función interna puede acceder a la variable de nuestra función externa oración ya que el alcance externo «encierra» el alcance de la función interna. Así funcionan los cierres.
¿Cuándo se usa un cierre Swift?
Los cierres son útiles por varias razones:
- Reduzca o elimine la redundancia en su código
- Proporcionar un código más compartimentado o modular
- Privacidad de datos mediante la creación de variables y funciones privadas
- Capacidad para personalizar una función basada en ciertos parámetros o argumentos
- Cree «memoria» manteniendo un registro en su código que pueda ser llamado para su uso posterior
Una mirada más a los cierres rápidos
Profundicemos un poco más. ¿Qué pasaría si quisiéramos pasar un cierre de Swift como parámetro? ¿Tal vez queremos que se arregle una frase inicial mientras que la segunda expresión sea lo que queramos pasar? Este es un ejemplo de cómo personalizar su función.
Aquí hay un ejemplo de un cierre de Swift pasado como parámetro:
//Define function and pass in the closure as a parameter
func outerSpace(innerSpace: ()->()) {
var phrase = "Greetings!"
print(phrase)
//Calling the closure
innerSpace()
}
//Putting it all together
outerSpace(innerSpace: {print("Take me to your leader")})
Producción
Greetings!
Take me to your leader
En este ejemplo, podemos proporcionar un “¡Saludos!” predeterminado. frase mientras que la segunda fase dependerá de nosotros lo que queremos poner en nuestro cierre.
¡Y ahí lo tienes! Una discusión adicional sobre la publicación de funciones de Swift con cierres de Swift. ¡Feliz codificación!
¿Quieres saber más sobre Swift? ¡Explore hoy mismo el programa Convertirse en desarrollador de iOS Nanodegree de Udacity!
Glosario
- función – es una pieza de código que hace algo
- clausura – un bloque de código autónomo, normalmente una función, que contiene código y utiliza referencias de su entorno
- Alcance – el concepto de dónde se puede acceder a los valores y funciones y estar disponibles dentro de un programa
- habitación variable – una variable a la que solo se puede acceder dentro de un bloque de código
- Ámbito local – solo puede acceder a valores y funciones dentro de su bloque de código
- Variable general – una variable que se puede evaluar fuera o dentro de cualquier bloque de código dentro de un programa
- Alcance global – valores y funciones que están disponibles en cualquier lugar dentro de un programa