• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

lua的变量以及在加载模块时的使用

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

这篇文章主要是介绍lua的全局变量和局部变量的定义和使用情况,以及在require模块时的调用,编辑器为IDEA。

oneLua脚本:

a = 5   --全局变量
local b= 5  --局部变量

function method()
    c = 5    --全局变量
    local d = 6   --局部变量
end

method()  --执行method方法
print(c,d)  --输出结果:5  nil(这个d是全局变量,但是并没有赋值,method方法中的d只是局部变量)

do
    local a = 6 --局部变量a
    b = 6   --对局部变量重新赋值
    print(a,b)  --输出结果:6  6
end

print(a,b)   -- 输出结果:5 6

--lua中的变量都是全局变量,就算是在语句块和函数中也一样,除非使用local显示地声明为局部变量
--局部变量的作用域为从声明位置开始到所在语句块结束
--变量的默认值都是nil

twoLua脚本:

a,b,c = 1,2,3  --lua可以对多个变量同时赋值,变量列表和值列表各个元素用逗号隔开
print(a,b,c)  --输出1 2 3

--当变量个数和值个数不一致时
--变量个数> 值个数  那么补足nil
a1,b1,c1 = 0
print(a1,b1,c1)  --输出0 nil nil
--变量个数< 值个数  那么多余的值被忽略
d1,f1=3,4,5
print(d1,f1)  --输出3 4

然后在一个lua文件中去调用另一个lua中的方法或者字段。这里遇到了一个坑,require"模块"的模块文件不是放在哪个文件目录都行,函数 require 有它自己的文件路径加载策略,它会尝试从 Lua 文件或 C 程序库中加载模块。
配置lua解析器路径和lua文件路径如图:

在fourLua.lua中去调用threeLua.lua的方法或者字段。
threeLua脚本:

threeLua={}

function  testMethod()  --testMethod 全局方法
    print("我是全局方法")
end

A1=12  --全局字段

local A2 = 13  --局部字段

function threeLua.testMethod3()
    print(A2)
end

function threeLua:testMethod2() --testMethod2本身并不是全局方法,属于全局table的一个元素
    print("我是table中的方法")
end

local function testMethod4()
    print("我是局部方法")
end

function threeLua:testMethod5()
    testMethod4()
end

--lua的模块路径存在于一个全局table--package的path字段和cpath字段里
--当require时lua解释器会按照path和cpath里的路径替换"?"查询是否存在该文件,有就加载,没有报错
--print(package.path)   --输出 F:\luaProject\project001\lua\?.lua
--print(package.cpath)  --输出 F:\luaProject\project001\?.dll

fourLua脚本如下:

--定义一个模块
fourLua={}

fourLua.a9=8

require("threeLua")
testMethod()  --输出  我是全局方法
print(A1)   --输出12
print(A2)    --这里的A2是全局变量了,并不是threeLua中的局部变量A2  输出nil
threeLua.testMethod3()  --如果想输出threeLua中的A2,那么在threeLua中搞一个testMethod()方法即可
threeLua.testMethod5()   --输出 我是局部方法
threeLua.testMethod2()  --输出 我是table中的方法
--return fourLua
--print(package.path)

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
openresty lua 模块发布时间:2022-07-22
下一篇:
Lua-table常用操作发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap