lua语言——多脚本执行

114 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第17天,点击查看活动详情

(一)全局变量
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)--roota是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