Déclarer une variable globale dans une fonction en LUA

J'ai une fonction à l'intérieur de laquelle j'ai déclaré une variable globale obs, à l'intérieur d'une fonction et d'assigner une valeur.Si je veux accéder à une certaine autre fichier lua, il donne une erreur: "tentative d'appel obs une valeur nulle, que dois-je faire pour pouvoir en mesure d'y accéder?

Ici est le mannequin le code

//A.lua
function X()
obs = splitText(lk,MAXLEN)
end

//B.lua
function Y()
for i=1, #obs do      //error at this line
end
end
  • A travailler si vous avez besoin de la déclaration sur le haut de B. lua, qui appelle l'A. lua. Et assurez-vous que vous appelez la fonction X() avant d'appeler la fonction Y().
  • Oh, et il pourrait être possible, que splitText offre néant
  • Oh, non non. splitText n'est pas la prestation NUL à tous. En fait, est-il un autre moyen de stocker de la valeur? Je ne peux pas exiger la déclaration de A. lua(quelque chose que je ne peux pas l'expliquer ici), mais cela ne sera possible qu'avec le genre de code que j'ai. J'ai juste besoin de trouver un moyen de stocker cette valeur quelque part qui peut être consulté dans B. lua
  • Il est difficile de comprendre votre conception. Vous avez différents choix, dépend de votre conception. Vous pouvez appeler X directement à partir de B ou à l'intérieur de Y. c'est Peut-être mieux de retourner obs dans X, de sorte que vous pouvez appeler X dans Y et utiliser la valeur de retour. Vous pouvez également passer la fonction X comme argument de la fonction Y.
  • Vous pouvez également écrire un fichier dans lequel vous stockez obs et le lire dans B, mais je pense que ce serait la pire façon 🙂
  • Comment puis-je appeler X directement à partir de B quand je ne peux pas avoir de retour au sommet?
  • Duh! La directive require (espère que vous vouliez dire qu'avec l'instruction return)... Est dofile d'accord? Vous n'avez pas "importer" quoi que ce soit? Mais comment appelez-vous X et Y? À partir d'un autre C. lua qui nécessite un B? Passer ensuite! Je suis un peu confus sur la façon dont vous appelez les fonctions. Sinon, il pourrait être possible que vous n'avez que le fichier de la solution de chance.

InformationsquelleAutor Simran kaur | 2014-06-20