当前位置:   article > 正文

Lua语法详解之多脚本执行(require, package,_G)_lua _g package

lua _g package

(一)全局变量

--全局变量
a=1--全局变量
c=3--全局变量
for i=1,3 do
	d="world"
end
print(d)--d,这里是d出了循环体还能用,是全局变量
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

(二)本地变量,local

--本地变量的关键字是local
for i=1,3 do
	local e="world"--这个e只能在这个循环里使用
	print("hell"..e)--打印三次,hellworld
end
local f="root"
print(f)--root
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

(三)多脚本执行: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脚本里的全局表

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

test.lua

--用来测试多脚本执行的
print("test lua")
print("lua test")
a="root"
local c="hello"
function f1(a)
	print(a)
end
d={{name=1,age=13}}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

(四)脚本卸载

--脚本卸载
--判断脚本是否被加载
--package.loaded["脚本名"]--返回的是个bool,判断该脚本有没有被加载过
print(package.loaded["test"])--true
--把加载过的脚本卸载
package.loaded["test"]=nil
print(package.loaded["test"])--nil
--卸载完后又能加载了
require('test')--test lua,lua test
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

(五)大G表
–大G表
–_G表是个总表(table)存储了声明的全部的全局变量,不存本地变量
所以这就是为什么加载了别的脚本,可以使用别的脚本里的全局变量

(六)小技巧,打印别的脚本里的本地变量,可以在该脚本中用return返回这个本地变量,然后另一个要使用它的脚本,拿个变量接就可以使用了。

h=require('test')--test lua,lua test
print(h)--hello,用h变量接住了test脚本里的本地变量c
  • 1
  • 2

test.lua

--用来测试多脚本执行的
print("test lua")
print("lua test")
a="root"
local c="hello"
function f1(a)
	print(a)
end
d={{name=1,age=13}}
return c
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/148040
推荐阅读
相关标签
  

闽ICP备14008679号