- Mar 8, 2025
[8/16] Fonctions avancées avec labels de paramètres et inout
Introduction
Après avoir découvert les bases des fonctions en Swift, il est temps d’aller un peu plus loin. Swift propose des fonctionnalités avancées pour rendre vos fonctions encore plus claires, réutilisables et puissantes.
Dans ce chapitre, nous allons découvrir deux notions essentielles :
les labels de paramètres, qui rendent l’appel d’une fonction plus lisible,
les paramètres
inout, qui permettent à une fonction de modifier directement une variable passée en paramètre.
Les labels de paramètres
Lorsqu’une fonction est appelée, il peut parfois être difficile de comprendre la signification des valeurs passées en argument. Swift permet de rendre les appels de fonctions plus explicites grâce aux labels de paramètres.
Syntaxe avec labels :
func afficherMessage(pour nom: String) {
print("Bonjour, \\(nom) !")
}
afficherMessage(pour: "Claire")
Ici :
Le label
pourest utilisé lors de l’appel de la fonction.Le paramètre
nomest utilisé à l’intérieur de la fonction.
Comparaison avec une fonction sans label :
func afficherMessage(_ nom: String) {
print("Bonjour, \\(nom) !")
}
afficherMessage("Claire")
➡️ Dans cette version, le label est omis grâce au caractère _. Cela fonctionne, mais cela peut parfois nuire à la lisibilité, surtout avec plusieurs paramètres.
📌 Utiliser des labels rend le code plus expressif et plus compréhensible, surtout dans des projets de grande taille.
Exemple plus complet :
func calculerPrix(pour article: String, quantite: Int) {
print("\\(quantite) x \\(article)")
}
calculerPrix(pour: "Pizza Margherita", quantite: 2)
Les paramètres inout
Par défaut, les fonctions Swift travaillent avec des copies des variables. Cela signifie que les variables d’origine ne sont pas modifiées. Mais que faire si vous souhaitez qu’une fonction modifie directement une variable passée en paramètre ? C’est là que les paramètres inout entrent en jeu.
Exemple : modifier une valeur directement
func doubler(valeur: inout Int) {
valeur *= 2
}
var monNombre = 10
doubler(valeur: &monNombre)
print(monNombre) // Affiche : 20
Explication :
Le mot-clé
inoutpermet à la fonction de modifier la valeur de la variable passée en paramètre.Lors de l’appel de la fonction, il faut utiliser le symbole
&devant la variable pour indiquer que vous acceptez qu’elle soit modifiée.
⚠️ Attention : n’utilisez inout que si c’est vraiment nécessaire. Modifier une variable en dehors de sa portée peut rendre le code plus difficile à suivre.
Scénario concret : ajuster une remise
func appliquerRemise(prix: inout Double, pourcentage: Double) {
prix -= prix * (pourcentage / 100)
}
var prixProduit = 100.0
appliquerRemise(prix: &prixProduit, pourcentage: 20)
print(prixProduit) // Affiche : 80.0
Dans cet exemple, la fonction modifie directement le prix d’un produit en appliquant une remise.
Conclusion
Les fonctions en Swift peuvent être personnalisées et optimisées grâce aux labels et aux paramètres inout.
Les labels de paramètres rendent le code plus clair et plus lisible.
Les paramètres
inoutpermettent de modifier une variable directement depuis une fonction, mais doivent être utilisés avec prudence.
💡 En maîtrisant ces outils, vous écrirez des fonctions plus expressives et plus puissantes, capables de mieux répondre aux besoins de vos applications.