• 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 pour est utilisé lors de l’appel de la fonction.

  • Le paramètre nom est 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é inout permet à 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 inout permettent 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.

0 comments

Sign upor login to leave a comment