Aller au contenu

Messages recommandés

Posté(e)

Un abus de langage de la part de Fibaro concernant les "variables globales" a embrouillé notre ami ici. Mais oui tu as raison Lazer pour le concept ;), la notion de portée des variables c'est la base. Et pour te rejoindre j'ajouterais bien que l'absence de typage des variables * n'arrange pas les choses d’ailleurs il peut-être utile parfois de vérifier le type d'une variable avant de l'utiliser !

 

* LUA utilise un typage dynamique c'est à  dire que le type est défini automatiquement en fonction de la valeur.

Posté(e)

Merci encore à  tous ! Tout s'éclaire enfin.

 

En tout cas je me rends compte qu'avec mon incompréhension de l'utilisation du panneau de variables, je me bornais à  déclarer toutes mes variables au fil de mon code en LOCALE et déclarais mes variables globales dans le panneau de variables !!! Pffff le boulet !  :huh:  Tu m'étonnes que je me soit pris le mur hier soir !

 

Je vais pouvoir enfin revenir à  une utilisation normale du LUA sans réinventer la portée des variables !  :D

Je commençais à  devenir fou là .

 

Au sujet de la portée des variables, tout est là  :

http://www.luteus.biz/Download/LoriotPro_Doc/LUA/LUA_Training_FR/LUA_Scope_Variables.html

 

Extrait :

Portées des variables, définition

Les programmes sont morcelés en unités de code, comme pour les fonctions et les modules.

Dans ces unités nous pouvons créer des variables et leur affecter des valeurs de sorte que nous puissions traiter des données et faire que le programme exécute une tâche donnée. Pour un certain nombre de raisons (conflits de noms, information cahée, etc...) nous pouvons vouloir isoler des variables dans les unités. Nous pouvons également vouloir créer des variables provisoires pour une tâche qui peuvent être supprimées une fois celle-ci terminée.

Le terme "unité" est peu un vague. Nous employons le terme portée des variables pour décrire le jeu de code dans lequel un ensemble de variables sont disponible.

Les variables auxquels nous avons accès sont dites visibles. La portée d'une variable est le bloc contenant le code dans lequel elle est visible. Les portées sont créées et détruites pendant que le programme exécute ces blocs de code. Les variables contenues dans ces blocs sont créées et détruites selon les règles décrites ci-après. Quand nous écrivons un bloc et une nouvelle portée nous écrivons une portée localeLes portées externes sont visibles des portées locale mais pas le contraire.

Posté(e) (modifié)

Steven. ;)

 

T'es tordu hein ?!  oups Je suis tordu mais toi aussi...  ;)

  1. -- J'en fait quoi moi de ce truc bizarre qui n'est même pas numérique.
Modifié par JossAlf
  • Upvote 2
Posté(e)

Je crois que je vais me reposer un peu. Vous imaginez même pas les noeuds au cerveau que je viens de me faire. J'avais seulement rayé l'usage normal des variables globales à  cause de ce foutu panneau de variables ... 

 

Vous imaginez programmer sans globale ?!  :13:   Put... j'ai du mérite que mes codes tournent !!! Arf je flippe à  l'idée d'en reprendre certains...  :wub:

Posté(e)

Je programme sans aucune global enfin presque ... enfin sauf une ... celle qui fait tout   ;)

 

if (not GEA) then
   GEA = {}
   GEA.version = 3.30
   GEA.checkEvery = 30
   ...
   GEA.add = function(id, secondes, message, ...)
      ...
   end
end
 
Seule la variable GEA est global tout le reste est local à  la variable GEA. Allez fait moi plaisir ... dis moi que je rajoute des noeuds à  ton cerveau :)
 
 
:D  :93:  :D
 
:98:
Posté(e)

Ha tu me cherches hein ?!

 

Un autre truc dans le genre tordu :   ;)

player = "001"
local player = "003"
fibaro:debug(player)

Affichage du debug : 003 (c'est donc la locale qui est retenue puisque la dernière déclarée)

 

Mais je fais comment pour retrouver ma Globale ?  001  ?

Posté(e)
function getPlayer() return player end

player = "001"
local player = "003"

fibaro:debug(player)
fibaro:debug(getPlayer())

Lol

Posté(e)

pfff   :60: (tu as a mis une majuscule à  player -> Ca peut pas marcher)    :P

 

Bon allé j'arrête :)

 

@Lazer    :rolleyes:

 

Merci encore à  tous.

  • Upvote 1
  • 3 mois après...
Posté(e)

Merci JossAlf d'avoir bien rédigé ce qui te torturait le cerveau et d'avoir illustré les réponses par plusieurs exemples ^^

J'y vois plus clair aussi! J'avais un début de réponse dans la tête mais des choses m'échappaient aussi! J'ai enfin eu le temps de me poser pour lire la suite de ton investigation!

Merci aux maîtres Steven et Krikroff forcément :60: :60: :60:

  • Upvote 1
×
×
  • Créer...