• 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

    以上。

  • 相关阅读:
    仿美团pc,koa+ssr(四)
    基本的数据库操作脚本
    jQuery选择器总结
    经常学习参考网站
    WebAPI
    Sqlserver 基本面试题
    truncate和delete的区别
    Webservice,WCF,WebAPI 之间的区别
    WCF 学习
    学习angularJs(1)--引用文件
  • 原文地址:https://www.cnblogs.com/wuming1234/p/3715901.html
Copyright © 2020-2023  润新知