Le Tutoriel de Swift Closure
1. Qu'est-ce que Closure?
Closure: Closure est un bloc spécial. Il peut obtenir éventuellement des paramètres et un type de retour.
Il est presque similaire comme un bloque dans C ou Object-C.
Il est presque similaire comme un bloque dans C ou Object-C.
Afin de simplifier, vous pouvez observer la déclaration suivante. Pourriez- vous déviner sa signification?
La déclaration dessous peut être décryptée par l'illustration suivante:
C'est une syntaxe pour déclarer les variables avec le type de données et lui assigner des valeurs avec lesquelles vous êtes familier.
MyFirstClosure.swift
import Foundation
// Déclarez la variable myVar1, avec le type de données, et assignez la valeur.
var myVar1 : () -> () = {
print("Hello from Closure 1");
}
// Déclarez la variable myVar2, avec les types de données, et assignez une valeur.
var myVar2 : () -> (String) = { () -> (String) in
return "Hello from Closure 2"
}
// Déclarez la variable myVar3, avec les types de données, et assignez la valeur.
var myVar3 : (Int, Int) -> (Int) = { (a : Int, b: Int) -> (Int) in
var c : Int = a + b
return c
}
func test_closure() {
// Exécutez de la fermeture (Closure).
myVar1()
// Exécutez de la Closure et obtenir la valeur de retour.
var str2 = myVar2()
print(str2)
// Exécutez de la Closure, passez (pass) les paramètres
// et obtenez une valeur de retour.
var c: Int = myVar3(11, 22)
print(c)
}
Closure est un bloque qu'il peut-être comprendre des paramètres et la type de retour.
Syntaxe de Closure:
{ (parameters) -> returntype in
// statements
}
2. Fonction avec Closure
Function est un cas particulière de Closure. Function est une Closure nommé ou peut-être dire que la Closure est une Function anonyme.
Définition:
Usage:
3. La clôture anonyme
Quand déclarer Closure, il n'est pas nécessaire d'écrire le nom des paramètres. Ces paramètres peuvent être références par $0, $1,...
AnonymousClosure.swift
import Foundation
// Déclarez une Closure de la manière habituelle.
var myClosure : (String, String) -> String
= { (firstName: String, lastName: String) -> String in
return firstName + " " + lastName
}
// Déclarez une Closure de manière anonyme (anonymous).
// (Ignorez les noms de paramètres).
var anonymousClosure : (String, String) -> String
= {
// En utilisant
// $0: Pour le premier paramètre
// $1: Pour le deuxième paramètre.
return $0 + " " + $1
}
Note: $0, $1,... sont des paramètres anonymes. Ils sont uniquement utilisés dans l'anonymat Closure. Si vous utilisez le Closure normal, vous recevrez un message d'erreur:Anonymous closure arguments cannot be used inside a closure that has explicit arguments
Par exemple, avec l'anonymat Closure (2):
AnonymosClosure2.swift
import Foundation
func test_anonymousClosure() {
// Déclarez une variable du type de Closure.
var mySum : ( Int, Int ) -> (Int)
// Assignez une Closure annonyme pour lui.
// $0: Pour le premier paramètre
// $1: Pour le deuxième paramètre.
mySum = {
return $0 + $1
}
var value = mySum(1, 2)
print(value)
}
4. Des valeurs de retour implicites
Si dans le contenu de Closure, il y a une seule expression, vous pouvez omettre le mot- clé return.
ImplicitReturnValues.swift
import Foundation
// Ceci est une Closure dont le contenu a une seule expression
var closureWithReturn = { (a: Int, b: Int) -> Int in
// Une expression (expression) unique.
return a + b
}
// Peut omettre le mot-clé 'return'.
var closureWithoutReturn = { (a: Int, b: Int) -> Int in
// Si seulement une seule expression.
// Omettre le mot clé 'return'.
a + b
}
Tutoriels de programmation Swift
- Installer la machine virtuelle Mac OS en VMWare
- Installer XCode
- Tutoriel Swift pour débutant
- Le Tutoriel de Swift Function
- Le Tutoriel de Swift Closure
- Classe et Objet en Swift
- Le Tutoriel de Swift Enum
- Le Tutoriel de Swift Struct
- Programmation pour l'équipe utilisant XCode et SVN
Show More