Mot clef pour programmer en Gambas.

instructions

GB3- FUNCTION et SUB

Rédigé par spheris Aucun commentaire
Classé dans : apprentisssage, gambas 3, Instructions, Tutoriels Mots clés : aucun
Bonjour,
Aujourd'hui nous allons tenter d'expliquer la différence entre les procédures de type SUB et le procédures de type FUNCTION.

A) différence entre SUB et FUNTION


La seule différence est qu'une procdure de type SUB ne renvoi pas de variable alors que la procédure FUNCTION oui.

Concrètement, que cela veut-il dire?

B) La procédure SUB.

Prenons un exemple :

à plusieur reprise dans mon programme, je souhaite ajouter 1 et multiplier par 2 ce résultat.

Je vais donc créer une procédure privée dans laquelle je vais faire mon calcul comme ceci :

Private Sub mycalc(mynumber As Float)
Dim myresult As Float
myresult = (mynumber + 1) * 2
Print myresultEnd

Nous savons que pour un programme soit le mieux écrit possible, il est nécessaire que les variables soient privées et non globales, ce qui apporte plus de souplesse dans le programme et surtout plus de sécurité.
Que cela veut-il dire dans notre exemple?
Myresult par exemple est à l'intérieur de la procédure mycalc et uniquement visible par cette procédure. Dans l'état actueln nous ne pouvons pas l'utiliser en dehors de notre procédure mycalc.
Comment puis-je l'utiliser à l'extérieur de cette procédure?

C) La procédure FUNCTION.

C'est là tout l'intérêt de la commande FUNCTION.
Nous allons réécrire mycalc avec la possibilité de renvoyer le résultat comme ceci :

Private Function mycalc(mynumber As Float) As Float
Dim myresult As Float
myresult = (mynumber + 1) * 2
Return myresult
End

Le mot SUB a été changé en FUNCTION parce que après les parenthèses, une variable de type FLOAT va être renvoyée.

pour utiliser cette fonction, rien de plus simple.
Dans l'exemple ci-dessous, je vais envoyer à la procédure le chiffre 12 et je veux recevoir le résultat de (12+1)x2
Déclarez dans votre programme une variable globale comme ceci :

Private myvalue as Float

Ensuite passez le chiffre 12 à la procédure mycalc comme ceci :

Myvalue = mycalc(12)

Le chiffre 12 est appelé 'UN ARGUMENT'
L'argument est passé à la méthode mycalc.

Quel type d'agument peut-on passer à une méthode, et quel retour peut-on récupérer?
Eh bien pratiquement tout ce qui est dans gambas peut être passé  et récupérer. C'est cela la force de gambas.

Un exemple: Je souhaite que toutes les FORM de mon programme est la même dimension, je peux ainsi écrire dans chaque form :

Ajuster(me)
J'envoi une form comme argument.

et dans la méthode ajuster :

private sub ajuster(myform as form)
myform.widht = 800
myform.Height = 600
myform.border = 0
End

Entrainez vous à jongler avec des envois, des retours, et vous verrez combien il est simple de réaliser des programmes performants.


Merci pour votre attention.

 ;)