1、全局变量和本地变量
全局变量
--多脚本执行
--全局变量和本地变量
--全局变量
--全采用全局变量其实挺浪费内存的
--像下面这些全是全局变量
a=1
b='123'
--for循环内声明的变量在C#中是局部变量,在lua中是全局变量
for i=1,1 do
c='lucky'
end
print(c)
局部(本地)变量
--关键字 local
for i=1,1 do
local d='execution'
end
print(d)
这样在for循环外我们就获取不到局部变量的值
只有在for循环内才能打印
在lua内的任何语句块你只要不加local就默认是全局变量
2、多脚本执行
Test.lua
print('多脚本测试')
t4='123'
local x = 1
Require.lua
--关键字 require("脚本名")
require('Test')
print(t4)
print(x)
从上面可以看到当变量变成 local 后,不是同一个脚本就访问 不了它了
这个可以看出来local应用在语句块外的变量也是有作用的
3、脚本卸载
--require加载执行过的脚本,加载过一次就不会再被执行
require("Test")
require('Test')
--只打印了一次"多脚本测试"
package.loaded[‘脚本名’]
判断这个脚本是否被执行过
require('Test')
--package.loaded['脚本名']
--返回值为boolean 用来判断这个脚本是否被执行过
print(package.loaded['Test'])
卸载脚本
print(package.loaded['Test'])
--卸载已经执行的脚本
package.loaded['Test'] = nil
print(package.loaded['Test'])
--重新加载
require('Test')
4、大G表
a=1
b='567'
for i =1,1 do
c=7
end
--大G表
--_G表是一个总表(table) 它将我们声明的所有全局变量都存在这个里面
--局部变量不会存到大G表中
for k,v in pairs(_G) do
print(k,v)
end
另外
我们如果想要获得另外一个脚本的local变量,其实可以把它设成return
然后在想要的脚本内弄个变量接住它