cocos2dx lua的require、读取和执行顺序

今天就来研究一下,lua中的全局函数(function a()),本地函数(local function aa()),和require的功能(lua模块化和执行顺序),了解了这个,基本上lua程序上就很小心的写代码了

1、  首先lua的读取执行,是按照顺序来的

假如说一个函数先执行,在后面才定义,这是错误的,是会报错的,就如下图所示,这样写是错误的,不论是全局,还是本地函数,如果程序没有事先读取,就去运行,这样是会报错的

cocos2dx lua的require、读取和执行顺序_第1张图片

修正方法:如下图,这样写,才正确

cocos2dx lua的require、读取和执行顺序_第2张图片


2、 如果有文件先用这个require "src/helper",事先执行了,那么这个helper.lua文件里面的变量和函数(全局函数or本地函数【本地函数只在本地文件中执行,只在同一模块中执行,其他模块都不能执行】)都已经被读取在程序中了


3、  来看看local这个本地的标志,如果有这个标志的,就只能限定在这个文件里面才能使用,如果是函数内部定义的,也就只限定在函数内部才能使用

如下图的做法是不行的,本地函数严格有限

cocos2dx lua的require、读取和执行顺序_第3张图片


修正方法如下图:

cocos2dx lua的require、读取和执行顺序_第4张图片



但是如果是全局函数or全局变量,就必须先让程序去执行和读取,才能使用,然后在别的文件上调用这个全局函数的话,才能执行下去,

 

如果是先执行这个全局函数,然后在后面才来定义,这样就颠倒了顺序了,(全局要了解定义函数,和执行函数的概念,肯定是先定义函数,然后才来执行,这样才有效果,否则会报错)

如图是正确的:

下面做法,是先让程序知道有这个全局定义函数,然后执行的时候,就知道有定义了,才能执行下去

cocos2dx lua的require、读取和执行顺序_第5张图片








你可能感兴趣的:(lua)