lua的一个坑:和.的区别

本文探讨了Lua脚本语言中冒号(:)与点(.)操作符的区别,并通过具体的代码示例说明了两者在调用模块方法时的不同表现及可能的原因。

两个.lua文件

main.lua如下

local log=require ("log")
local db=require ("dbConnect")


function test(dbInfo)
log.debug("test1################ user=%s",dbInfo.dbUser)
end


function LuaMain()
log.init("GameServer", config.logLevel)
log.setAppFlag("[GameServer] ")
log.debug("LuaMain")


dbConnectInfo=
{
dbName="xygamedb",
dbUser="root",
dbPassword="xxxxxx",
dbHost="127.0.0.1",
dbPort="3306",
}


test(dbConnectInfo)


db:test2(dbConnectInfo)
db.test2(dbConnectInfo)

end


dbConnect.lua如下

local log=require ("log")

module(..., package.seeall)


-- 内部变量定义
function test2(dbInfo)
log.debug("test2######user=%s",dbInfo.dbUser)
end


发现db:test2(dbConnectInfo)能调用到dbConnect.lua中的test2,但dbInfo.dbUser为空

而db.test2(dbConnectInfo)能得到正确的dbUser数据


不知道:和.有什么不同,如果:不可用,那为什么它又能运行到test2呢,奇怪!


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值