• 8 heures
  • Facile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 24/05/2022

Créez des fonctions

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Les fonctions, comme les variables précédemment, sont des objets de base en programmation et que vous allez utiliser extrêmement fréquemment. Alors, autant savoir tout de suite ce que c'est !

Pour rappel, une variable associe un nom et une donnée. Eh bien, une fonction c'est l'association d'un nom et de logique – ou encore l'association d'un nom et de quelques lignes de code.

Prenons un exemple

Voici les lignes de code d'un petit jeu :

// Nous créons un héros
var heros = Heros()
heros.nom = "Jean Paul Le Héros"
heros.vie = 500
heros.attaque = 100
// Nous créons un méchant
var ennemi = Diable()
ennemi.nom = "Rémi La Souris qui fait peur"
ennemi.vie = 1000
ennemi.attaque = 30
// Nous combattons l'ennemi
ennemi.vie = ennemi.vie - hero.attaque // L'ennemi perd de la vie
heros.vie = heros.vie - ennemi.attaque // Le héros perd de la vie

Inutile de vous acharner à comprendre ces lignes. Les commentaires vous permettent de saisir ce qu'il se passe.

Nous avons deux problèmes :

  1. Ce n'est pas facile à lire !

  2. Si je veux attaquer à nouveau mon ennemi, il va falloir que je recopie les deux lignes correspondantes correctement. Il n'est pas près de mourir…

Les fonctions vont nous permettre d'y voir plus clair. Pour créer une fonction, rien de plus simple ! Il suffit de suivre la syntaxe suivante :

func creerHeros() {
}
  1. On écrit le mot clé  func  .

  2. On écrit le nom de la fonction (on choisit ce qu'on veut !).

  3. On rajoute des parenthèses ().

  4. On ouvre et on ferme des accolades.

Il ne reste plus qu'à écrire le code à l'intérieur des accolades :

// Cette fonction permet de créer un héros
func creerHeros() {
var heros = Heros()
heros.nom = "Jean Paul Le Héros"
heros.vie = 500
heros.attaque = 100
}

Bon super, mais dans l'histoire on a rallongé le code…

Pour l'instant ! Car maintenant, si on veut créer un héros, il ne nous reste plus qu'à appeler la fonction comme ceci :

creerHeros()

En écrivant simplement le nom de la fonction et les parenthèses, l'ordinateur comprend qu'il doit exécuter toutes les lignes suivantes :

var heros = Heros()
heros.nom = "Jean Paul Le Héros"
heros.vie = 500
heros.attaque = 100

En créant de la même façon les fonctions  creerMechant  et  attaquer  , le code initial devient :

creerHeros()
creerMechant()
attaquer()

D'une part, c'est beaucoup plus court et, d'autre part, c'est beaucoup plus simple à lire ! Et en plus, si je veux attaquer plusieurs fois, je n'ai qu'à écrire :

attaquer()
attaquer()
attaquer()

Ça devient presque violent notre histoire… :pirate:

Donc, en résumé, les fonctions sont immensément pratiques pour simplifier la lecture de notre code et son utilisation. Elles permettent d'encapsuler des lignes de code et de les associer au nom de son choix pour être réutilisées ensuite.

En résumé, pour les déclarer :

func leNomDeMaFonction() {
// Ici on écrit le code
}

Et pour les utiliser :

leNomDeMaFonction()

À vous de jouer !

On refait le même exercice ? Et si vous deviez déclarer une fonction qui s'appelle  changeQuote  , qu'écririez-vous ?

// Allez jouer le jeu sans tricher !
// |
// |
// |
// |
// |
// |
// |
// |
// |
// |
// |
// |
// |
// |
// |
// Vous n'êtes pas en train de tricher quand même ?
// |
// |
// |
// |
// |
// |
// |
// |
// |
// Et hop !
func changeQuote() {
}

Félicitations à tous ceux qui ont cherché !

Il n'y a pas de grande différence avec ce qu'avait généré Xcode pour nous :

@IBAction func changeQuote() {
}

 Xcode rajoute juste le mot clé  @IBAction  pour savoir que cette fonction peut faire l'objet d'une connexion avec un élément de l'interface (IBAction : Interface Builder Action).  

Une action, c'est donc une connexion entre un élément de l'interface et une fonction, associée à un évènement !

Bon, c'est bien formidable tout ça, mais il s'agit désormais de tester cette action.

La fonction print

Une fonction pour en tester une autre ! Je vous présente la fonction  print. Cette fonction permet d'écrire des choses dans la zone de débogage.

La zone de débogage ?

Hmm… Je vois qu'on s'est planqué au fond de la classe et qu'on a pas tout suivi…

Pas grave, voici une image qui devrait vous remettre les choses en tête :

Notre interface complet pour développer notre application Teki : à gauche le Navigateur, en haut le Panneau Principal, à droite les Utilitaires et en bas la Zone de débogage !
Les différents composants de notre interface

Ça fait tilt ?! Parfait !

Pour utiliser cette fonction, il faut lui passer un paramètre. Un paramètre est une des possibilités qu'ont les fonctions et que nous détaillerons dans le prochain cours. Sachez seulement que ça s'écrit entre les parenthèses de notre fonction.

Par exemple, cela donne avec la fonction print :

@IBAction func changeQuote() {
print("Youpi ! Notre action fonctionne parfaitement !")
}

Cliquez sur Run (ou cmd + r). L'application se lance. Vous pouvez contrôler que la zone de débogage est vide. Maintenant, cliquez sur le bouton "ET MOI ?". Et vous devriez voir ceci apparaître dans la console (la partie droite de la zone de débogage). Evidemment, cela s'affiche autant de fois que vous cliquez sur le bouton :

Un tableau avec les Outputs à gauche : ile st écrit Youpi ! Notre action fonctionne parfaitement !
Youpi ! Notre action fonctionne parfaitement !

Bravo ! Notre bouton est bien relié à la fonction  changeQuote  et nous allons maintenant pouvoir modifier le contenu de cette fonction pour faire fonctionner notre application !

En résumé

Les fonctions :

  • Les fonctions permettent d'encapsuler des lignes de code et de les associer au nom de son choix pour pouvoir être réutilisées ensuite.

  • Pour créer une fonction, on utilise le mot clé  func.

Maintenant que nous avons notre outlet et notre action créée, nous allons rajouter de la logique à notre application en exécutant du code dans notre action.

Exemple de certificat de réussite
Exemple de certificat de réussite