Ce n'0 $et $1 moyenne Swift dans les bouchons?
let sortedNumbers = numbers.sort { $0 > $1 }
print(sortedNumbers)
Quelqu'un peut-il expliquer, ce $0
et $1
moyens swift?
Plus D'Exemples
array.forEach {
actions.append($0)
}
Vous devez vous connecter pour publier un commentaire.
$0
est le premier paramètre passé dans la fermeture.$1
est le deuxième paramètre, etc. Que cette fermeture vous avez montré est un raccourci pour:Il représente shorthanded arguments envoyés dans une fermeture, cet exemple, il tombe en panne:
Swift 4:
add = (+)
var add:((Int, Int) -> Int) = ...
explicitement pour les cas 3 et 4, dans ma swift 5 test.Swift 4.2
Comme vous le savez, un Fermeture qui est très proche d'un Fonction Lambda, ou un Petite Fonction Anonyme, est lui-même un bloc de fonctionnalités qui peuvent être transmis et utilisé dans votre code. Fermeture a des noms différents dans d'autres langages de programmation ainsi que de légères différences de sens – c'est Lambda dans Python et Kotlin ou Bloc dans C et Objective-C.
Nous allons voir comment la Fermeture fonctionne à l'aide d'Abréviation Noms d'Argument:
1. Fonction Normale
2. Fermeture Expression
3. Inline Fermeture Expression
4. L'Inférence De Type De Contexte
5. Rendement implicite de la Simple Expression des Fermetures
6. Abréviation Noms D'Argument
7. Opérateur Méthodes
Sans Abréviation Noms D'Argument:
Avec La Sténographie De Noms D'Argument:
Corps de cette fermeture est court et facile à comprendre:
Espère que cette aide.
La référence à la première et à la deuxième argument de tri. Ici,
sort
compare les 2 éléments et de les ordonner.Vous pouvez aussi chercher Swift documentation officielle pour plus d'info:
C'est un abrégé les noms d'argument.
Swift fournit automatiquement la sténographie de noms d'argument aux commandes de fermeture, qui peut être utilisé pour se référer aux valeurs de la fermeture du les arguments avancés par les noms de $0, $1, $2, et ainsi de suite.
Si vous utilisez ces sténo les noms d'argument dans votre fermeture d'expression, vous pouvez omettre la fermeture de l'argument de la liste à partir de sa définition, et le nombre et le type de l'abréviation noms d'argument sera déduit de la fonction de type. Le mot-clé peut également être omise, car la fermeture de l'expression est composée entièrement de son corps:
Ici, 0 $et $1 reportez-vous à la fermeture de la première et de la deuxième Chaîne arguments.