Il existe deux options pour transmettre un objet à une sous-routine :

  • Le passage par valeur, indiqué par une seule flèche vers la droite ou vers l’intérieur, passe une valeur numérique dans la variable de sous-routine que vous définissez.
    • Pass by value signifie qu’une valeur numérique est passée de la routine appelante à cette routine.
    • Si la valeur numérique provient d’une variable tagnamed dans la routine d’appel, la sous-routine ne peut pas affecter la valeur de la variable dans le programme appelant. Il n’utilise que la valeur transmise.
  • Le passage par référence, illustré par les flèches opposées indiquant l’entrée et la sortie, transmet une référence ou une poignée à une variable dans la routine d’appel.
    • Pass by reference signifie qu’une « référence » à un élément de données est transmise.
    • L’utilisation d’une référence transmise permet d’accéder aux données de la routine appelante et de les modifier.
    • Modifier les données transmises par référence équivaut à distribuer les données.

Les tableaux complets ne peuvent être passés que par référence. Les éléments individuels d’un tableau ne peuvent être transmis que par valeur. Si vous configurez pour passer un élément de tableau, vous devez placer l’index du tableau entre crochets []

En 2 mots

Passez par la valeur.
La valeur n’est pas modifiée.
Ce n’est pas la même valeur dans sous-routine et le programme principal.

Passez par référence.
La valeur est modifiée.
C’est la même valeur dans sous-routine et le programme principal.