-- 多脚本执行
print("******* Require ******* ")
-- print("******* 全局变量和本地变量 ******* ")
-- 全局变量
a = 1
b = "123"
for i = 1, 2 do
-- 此处 c 依然是全局变量,因此循环外可以被打印
c = "test"
end
print(c)
for i = 1, 2 do
local d = "test"
print("in loop " .. d)
end
print(d)
fun = function ()
tt = "123"
end
print(tt) -- 未调用函数时,tt 未申明, tt 为空
fun()
print(tt) -- 执行函数之后,tt被声明为了全局变量,不为空
-- 如果声明局部变量,通过关键字 local
--[[
fun = function ()
local tt = "123"
end
此时即使调用了函数 fun(),tt在函数外也为 nil
]]
-- print("******* 多脚本执行 ******* ")
-- 关键字 require(”脚本名") / require('脚本名')
require("test") -- 等效于 require('test')
print(testA)
print(testLocalA) -- 另一个脚本中的 local 本地变量访问为 nil
-- print("******* 脚本卸载 ******* ")
-- 如果是 require 加载执行的脚本,加载一次过后不会再执行
require('test')
-- package。loaded["脚本名"] 可以知道脚本是否被执行
-- 返回值为 boolean 类型
print(package.loaded["test"])
-- 卸载已经执行过的脚本
package.loaded["test"] = nil
print(package.loaded["test"])
require("test") -- 此时 test 脚本中的内容会被再次执行
-- 如果要得到另一个脚本的局部变量,可以使另一个脚本的返回值为局部变量
package.loaded["test"] = nil
local tLocalA = require("test")
print("tLocalA = " .. tLocalA)
-- print("******* 大G表 ******* ")
-- _G 表是一个总表(table),他将我们声明的所有全局变量都存储在其中
for k, v in pairs(_G) do
print(k,v)
end
-- 本地变量,加了 local 的变量不会添加到 _G 表中