首页 > 代码库 > lua中的冒号和点
lua中的冒号和点
在lua中创建一个Actor对象
function Actor.new()
local temp = {}
setmetatable(temp, Actor)
temp.x = 10
temp.y = 20
return temp
end
obj = Actor.new()
那么obj.x = 10 obj.y =20
如果有另外一个方法
function Actor.test()
print(x,y)
end
执行obj.test()
输出nil nil
因为test方法不知道obj的变量,所以要把obj本身传给他
就改成了
function Actor.test(obj)
print(obj.x,obj.y)
end
执行obj.test(obj)
输出 10 20
这样略显麻烦,可以使用冒号
function Actor:test()
print(self.x,self.y)
end
执行obj:test()
输出10 20
冒号要配套使用,定义方法的时候使用冒号,调用方法的时候也使用冒号,可以把调用方法的对象作为一个名叫self的变量传入方法。
但是应为冒号只是隐藏包含了一个self变量,所以可以使用点这样调用。
function Actor:test()
print(self.x,self.y)
end
执行obj.test(obj)
输出10 20
以上。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。