(一)全局变量
a=1--全局变量 c=3--全局变量 for i=1,3 do d="world" end print(d)--d,这里是d出了循环体还能用,是全局变量
(二)本地变量
--本地变量的关键字是local for i=1,3 do local e="world"--这个e只能在这个循环里使用 print("hello"..e)--打印三次,helloworld end local f="root" print(f)--root
(三)多脚本执行:require
require加载过一次的脚本,再加载不会被执行
-多脚本执行 --关键字 require,require("脚本名") require('脚本名'),这里的脚本是同一个目录的脚本,不同的要写全路径 --加载别的脚本后,可以使用这个脚本的全局变量和全局函数 require("test")--test lua,lua test,会把脚本里的print语句打印出来 require('test')--什么也不打印,因为上面执行过了test脚本 print(a)--root,a是test脚本里的全局变量 print(c)--c在test脚本里是局部变量,不会打印hello print(f1("nihao"))--nihao,f1是test脚本里的全局函数 print(d[1].name)--1,d是test脚本里的全局表
(四)脚本卸载
加载过的脚本 再次加载不执行
package.loaded[脚本名]- -判断脚本是否执行过 true 表示执行过 nil 表示未执行 package.loaded[脚本名]=nil 卸载脚本
(五)大G表
存储声明的全局变量
大G表:_G
for k,v in pairs(_G) do print(k,v) end –_G表是个总表(table)存储了声明的全部的全局变量,不存本地变量
所以这就是为什么加载了别的脚本,可以使用别的脚本里的全局变量
(六)小技巧
打印别的脚本里的本地变量,可以在该脚本中用return返回这个本地变量,然后另一个要使用它的脚本,拿个变量接就可以使用了。
h=require('test')--test lua,lua test print(h)--hello,用h变量接住了test脚本里的本地变量c