码迷,mamicode.com
首页 > 其他好文 > 详细

lua中的冒号和点

时间:2014-05-08 15:04:41      阅读:348      评论:0      收藏:0      [点我收藏+]

标签:class   int   c   set   使用   cti   

在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

以上。

lua中的冒号和点,布布扣,bubuko.com

lua中的冒号和点

标签:class   int   c   set   使用   cti   

原文地址:http://www.cnblogs.com/wuming1234/p/3715901.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!