今天就来研究一下,lua中的全局函数(function a()),本地函数(local function aa()),和require的功能(lua模块化和执行顺序),了解了这个,基本上lua程序上就很小心的写代码了
1、 首先lua的读取执行,是按照顺序来的
假如说一个函数先执行,在后面才定义,这是错误的,是会报错的,就如下图所示,这样写是错误的,不论是全局,还是本地函数,如果程序没有事先读取,就去运行,这样是会报错的
修正方法:如下图,这样写,才正确
2、 如果有文件先用这个require "src/helper",事先执行了,那么这个helper.lua文件里面的变量和函数(全局函数or本地函数【本地函数只在本地文件中执行,只在同一模块中执行,其他模块都不能执行】)都已经被读取在程序中了
3、 来看看local这个本地的标志,如果有这个标志的,就只能限定在这个文件里面才能使用,如果是函数内部定义的,也就只限定在函数内部才能使用
如下图的做法是不行的,本地函数严格有限
但是如果是全局函数or全局变量,就必须先让程序去执行和读取,才能使用,然后在别的文件上调用这个全局函数的话,才能执行下去,
如果是先执行这个全局函数,然后在后面才来定义,这样就颠倒了顺序了,(全局要了解定义函数,和执行函数的概念,肯定是先定义函数,然后才来执行,这样才有效果,否则会报错)
如图是正确的: