Les fonctions avec love2d

Les variables nous permettaient de stocker des valeurs. Avec les fonctions, nous pouvons stocker des morceaux de code. Cela nous permet d’exécuter ce code chaque fois que nous le souhaitons. Il existe 2 façons pour les créer, la deuxième étant la plus courante :

1
2
3
exemple = function()
  print("Hello World!")
end

et

1
2
3
function exemple()
  print("Hello World!")
end

Vous commencez par écrire le mot clef function suivi du nom de la fonction. Une fonction est un type de variable donc les même règles de nommage s’y appliquent. Le nom de la fonction ci-dessus est un exemple. Après le nom, nous mettons des parenthèses (). Maintenant nous pouvons mettre du code à l’intérieur de cette fonction. Dans ce cas, nous avons simplement mis print(“Hello World!”). Lorsque ceci est fait, il faut terminer la fonction avec le mot clef end.

Notez que si vous exécutez le code précédent, vous ne verrez pas « Hello World! » dans la console car nous ne l’avons pas encore exécuté. Pour le faire, nous devons en plus écrire ceci :

1
2
exemple()
-- Output: "Hello World!"

Vous devez simplement écrire le nom de la fonction suivi des parenthèses. C’est ce que nous appelons un appel de fonction

Les paramètres

Jetez un œil à ce code :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
function example(num)
  print("I like the number " .. num)
end

example(15)
example(2)
example(44)
example(100)
print(num)

-- Output:
-- "I like the number 15"
-- "I like the number 2"
-- "I like the number 44"
-- "I like the number 100"
-- nil

Entre les parenthèses de la fonction nous pouvons mettre ce que nous appelons des paramètres. Ce sont des variables temporaires qui n’existent que dans la fonction. Dans notre cas, on place le paramètre num et ensuite, nous pouvons l’utiliser comme n’importe quelle autre variable.

Nous exécutons notre fonction de nombreuses fois et chaque fois avec un nombre différent. Nous affichons aussi la même phrase mais avec un nombre différent. Le nombre que nous mettons entre parenthèse est ce que nous appelons un argument. Dans le premier appel de fonction, nous passons l’argument 15 au paramètre num.

À la fin de notre code nous affichons num à l’extérieur de notre fonction. Cela nous renvoie nil ce qui veut dire que num n’est pas un nombre, une chaîne de caractères ou une fonction. Ce n’est rien parce que comme je l’ai dit, les paramètres sont des variables qui ne sont disponibles que dans la fonction.

Return

Une fonction peut retourner une valeur que nous pouvons stocker dans une variable, par exemple. Pour ce faire, il faut utiliser le mot clef return :

1
2
3
4
5
6
7
function giveMeFive()
  return 5
end

a = giveMeFive()
print(a)
-- Output: 5

La variable a détient la valeur retournée par la fonction giveMeFive.
Un autre exemple :

1
2
3
4
5
6
7
-- Plusieurs paramètres peuvent être passés en arguments, séparés par une virgule
function sum(a, b)
  return a + b
end

print(sum(200, 95))
-- Output: 295

Notre fonction sum retourne la somme de a et b. Nous n’avons pas nécessairement besoin de mettre la valeur de retour de la fonction dans une variable en premier lieu. Nous pouvons l’afficher directement.

Utilisation

Souvent, vous souhaitez exécuter certains codes à plusieurs endroits. Au lieu de copier ce code chaque fois que vous souhaitez l’utiliser, nous pouvons simplement ajouter un appel de fonction. Si par la suite nous voulons changer le comportement de cette fonction, il suffit de la changer à un seul endroit, qui est la fonction elle-même. De cette façon, nous évitons de répéter le code. Ne vous répétez pas, c’est l’un des principes de programmation les plus importants.

Résumé

Les fonctions peuvent stocker du code que nous pouvons exécuter à tout moment. Nous appelons une fonction en écrivant son nom suivi de parenthèses. Nous pouvons mettre des valeurs à l’intérieur de ces parenthèses. Ces valeurs sont transmises aux paramètres de la fonction, qui sont des variables temporaires qui n’existent qu’au sein de la fonction. Les fonctions peuvent également renvoyer une valeur. Les fonctions suppriment la répétition et c’est une bonne chose.