variables locales non initialisees
Publié : lun. févr. 18, 2013 2:14 pm
Actuellement, les variables locales non initialisees explicitement le sont implicitement a 0. Or c'est souvent une source d'erreur, aussi je propose de changer le comportement pour les versions >= a 1.1: toutes les variables locales seraient initialisees implicitement a une valeur d'erreur qui serait "Unitialized local variable <nom_de_la_variable>", est-ce que ca pose probleme a quelqu'un?
Notez que les variables locales peuvent toujours etre initialisees a la creation, par ex:
ou (attention aux parentheses dont la presence est indispensable a cause des priorites respectives de := et ,)
mais cette utilisation est dangereuse, car les variables locales sont initialisees simultanement et ont encore la valeur hors de la fonction a ce moment-la, donc
f(x) renverra j*j et pas x^4 quelle que soit la valeur de x.
Il est beaucoup plus sur de declarer les variables locales, et de les initialiser apres declaration.
Notez que les variables locales peuvent toujours etre initialisees a la creation, par ex:
Code : Tout sélectionner
local j:=0;
local k:=1;
Code : Tout sélectionner
local (j:=0),(k:=1);
Code : Tout sélectionner
f(x):={ local j:=x*x; local k:=j*j; return k; }
Il est beaucoup plus sur de declarer les variables locales, et de les initialiser apres declaration.