Fonction
Fonction
Les fonctions sont un concept fondamental en programmation. Elles permettent d’organiser, structurer et réutiliser ton code de manière efficace. En isolant un morceau de programme dans une fonction, tu rends ton code plus clair et modulaire. C’est également très pratique, car tu évites de réécrire plusieurs fois le même bloc de code. En cas de problème, il devient beaucoup plus simple de corriger ou d’améliorer ton programme, puisqu’il suffit de modifier la fonction à un seul endroit.
Introduction
Pour introduire les fonctions, je te propose d’observer un code écrit sans utiliser de fonctions, puis de le réécrire en les intégrant. Dans l’exemple ci-dessous, on peut imaginer vouloir créer un programme qui génère des tickets de train. Ici, j’en ai imprimé cinq.
print("Billet de train du 10 mai 2024")
print("Billet de train du 10 mai 2024")
print("Billet de train du 10 mai 2024")
print("Billet de train du 10 mai 2024")
print("Billet de train du 10 mai 2024")
J’aurais pu directement écrire ce print dans une fonction comme ceci :
func ticketTrain(){
print("Billet de train du 10 mai 2024")
}
ticketTrain()
ticketTrain()
ticketTrain()
ticketTrain()
ticketTrain()
L’avantage ici, c’est que si je souhaite modifier le texte de mon print (par exemple, changer la date), je vais le faire à un seul endroit dans mon code, et la modification se fera partout où j’appelle cette fonction. Dans le code précédent, j’aurais dû modifier chaque ligne à la main, ce qui est relou et répétitif. On voit ici la base des fonctions, et tu comprends déjà l’utilité de cette notion dans nos programmes.
Déclaration de base
Pour déclarer une fonction en Swift, on utilise le mot-clé func, suivi du nom de la fonction, de la liste des paramètres (entre parenthèses, qui peut être vide) et du corps de la fonction (entre accolades).
func helloWorld() {
print("Hello World!")
}
helloWorld()
// Lecture dans la console -> Hello World!
Paramètres
Les fonctions peuvent prendre des paramètres en arguments, ce qui permet de les personnaliser en fonction de nos besoins. Ça rend nos fonctions plus flexibles et optimisées pour différents contextes. Je reprends mon exemple, mais cette fois en ajoutant des paramètres : on veut, par exemple, que la date du jour soit paramétrable lors de l’appel de la fonction.
func ticketTrain(day: String){
print("Billet de train du 10 \(day) 2024")
}
ticketTrain(day : 22)
// Lecture dans la console -> Billet de train du 22 mai 2024
Les fonctions peuvent accepter des paramètres pour leur fournir des données sur lesquelles travailler. Les paramètres sont des valeurs disponibles uniquement dans la portée de la fonction (entre les accolades {}). Ils sont typables et on peut définir plusieurs paramètres de différents types.
Plusieurs paramètres
func sayHello(to: String, and: String) {
print("Salut \(to), et \(and)")
}
sayHello(to: "Luke", and: "Anakin")
// Lecture dans la console -> Salut Luke et Anakin
Il n’y a pas de limite en nombre de paramètres pour une fonction.
Calcul avec des paramètres
func triple(value: Int) {
let result = value * 3
print("Si vous multipliez \(value) par 3, vous obtiendrez \(result)")
}
triple(value: 10)
// Lecture dans la console -> Si vous multipliez 10 par 3, vous obtiendrez 30.
Les paramètres de la fonction peuvent être utilisés pour effectuer n’importe quel type de calcul. Il est possible de créer des algorithmes propres à la fonction (c’est même le but).
Paramètres par défaut
func sayMyName(name: "Inconnu") {
print("Tu est, \(name)!")
}
sayMyName()
sayMyName(name: "Heisenberg")
/* Lecture dans la console ->
Tu est, Inconnu
Tu est, Heisenberg
*/
Les paramètres peuvent avoir des valeurs par défaut, qui sont utilisées si aucun argument n’est fourni lors de l’appel.
Étiquette
func add(a number1: Int, b number2: Int) -> Int {
return number1 + number2
}
var result = add(a: 10, b: 8)
print(result)
// Lecture dans la console -> 18
Tu peux donner une étiquette à un paramètre. Dans ce cas, l’étiquette permet d’appeler le paramètre en dehors de la fonction, et le label sera utilisé en interne dans la fonction.
Omission
func subtract(_ a: Int, _ b: Int) -> Int {
return b - a
}
let difference = subtract(5, 10)
print(difference)
// Lecture dans la console -> 10
Tu as également la possibilité d’omettre les labels en utilisant un underscore _ devant. Ainsi, tu n’auras pas besoin de les utiliser lors de l’appel.
Valeurs de retour (return)
func add(num1: Int, num2: Int ) -> Int {
let result = num1 + num2
return result
}
var myResult = add(num1: 7, num2: 7)
print(myResult)
// Lecture dans la console -> 14
Le mot-clé return permet à une fonction de renvoyer une valeur au code qui l’appelle. Le type de cette valeur doit correspondre à ce qui a été spécifié dans la déclaration de la fonction, en utilisant la notation -> Type (par exemple, -> Int pour un entier, ou -> String pour une chaîne de caractères). Si une fonction ne doit pas renvoyer de valeur, elle n’a pas besoin d’utiliser return. Le résultat renvoyé peut ensuite être stocké ou utilisé directement par l’appelant, en fonction des besoins.
Exercices Pratiques
Exo fonction
Télécharger le playground
Accède aux consignes directement en téléchargeant le playground.
⚠️ Les consignes que tu trouveras dans le playground ne sont pas verrouillées. Fais attention à ne pas les effacer par inadvertance !
Objectif
Ici, tu vas te familiariser avec les fonctions. C’est une notion importante à connaître et assez simple à appréhender, à condition de prendre le temps de bien pratiquer. Alors entraîne-toi !
Quizz
Après un peu de pratique, il est temps de te tester avec un petit quiz pour vérifier si tout est clair pour toi. Prends ton temps, lis bien les questions, et bonne chance.
Note
Les fonctions sont des blocs de code réutilisables qui permettent d’exécuter une tâche spécifique. Elles rendent ton code plus organisé, plus clair et plus facile à maintenir. En définissant une fonction, tu peux éviter les répétitions inutiles et simplifier les modifications, car une seule correction suffit pour affecter tous les endroits où la fonction est utilisée.
Exercices Pratiques
Exo fonction
Télécharger le playground
Accède aux consignes directement en téléchargeant le playground.
⚠️ Les consignes que tu trouveras dans le playground ne sont pas verrouillées. Fais attention à ne pas les effacer par inadvertance !
Objectif
Ici, tu vas te familiariser avec les fonctions. C’est une notion importante à connaître et assez simple à appréhender, à condition de prendre le temps de bien pratiquer. Alors entraîne-toi !
Quizz
Après un peu de pratique, il est temps de te tester avec un petit quiz pour vérifier si tout est clair pour toi. Prends ton temps, lis bien les questions, et bonne chance.
Note
Les commentaires sont là pour t’aider à expliquer ton code ou à le rendre plus lisible. Utilise-les avec modération : un code clair et bien structuré a souvent besoin de peu de commentaires.