zoukankan      html  css  js  c++  java
  • LUA脚本中的方法使用冒号和点,以及调用者使用冒号和点

    1、Lua脚本里方法之前的冒号和点:
    备注:每个方法前面如果是冒号,则这个方法里面自带一个self属性,也就是这个LUA脚本自己类对象的self,当为点时,自带的self属性则为nil
     
    调用者:local zwt = require "ZWTestLuaScript1"
    被调者:ZWTestLuaScript1脚本中的方法如下:
    方法1:
    function ZWTestLuaScript1:OnSumbitBtnLogin(x,y)
            print(self)
            print(x)
            print(y)
           self:OnCancerBtnLogin(3,4)
    end
    方法2:
    function ZWTestLuaScript1.OnSumbitBtnLogin(x,y)
            print(self)
            print(x)
            print(y)
           self:OnCancerBtnLogin(3,4)
    end
    以上两个方法的区别就是方法1为冒号,方法2为点。
     
    调用方式区别:
    方式1:
    调用者用冒号,被调者用点:zwt.OnSumbitBtnLogin(3,4)
    说明:被调者得到两个参数,第一个参数会默认变成一个table,也就是调用者默认传递self,而被调者第一个参数则接收self,所以最终的结果是
              被调者的self为nil,被调者的第一个参数为table,被调者第二个参数为调用者的第一个参数,调用者第二个参数丢失。
    运用范畴:
     
    方式2:
    调用者用冒号,被调者冒号:zwt:OnSumbitBtnLogin(3,4)
    说明:参数能正常对应,其中被调方法里能用self,这个self也就是被调者自身的表,调被者自身的self调用自己所在表的方法也是同样的原理。
    运用范畴:全部位置均可正常使用。
     
    方式3:
    调用者用点,被调者用冒号:zwt:OnSumbitBtnLogin(3,4)
    说明:调用者参数1赋给了被调者的self,导致调用者第二个参数传递丢失,自身的self被赋值导致不能使用自己表里的其他方法。
     
    方式4:
    调用者用点,被调者用点:zwt.OnSumbitBtnLogin(3,4)
    说明:调用时参数对应正确,但这个方法不能使用self,自身的self则为nil值,不能使用这个self去调用自己表里的方法。
    运用范畴:不需要使用自己表的slef的时候可以正常使用。
  • 相关阅读:
    文件上传之 MultipartFile
    EL表达式从数组 Map List集合取值
    Servlet监听器
    分页技术框架(Pager-taglib)学习三(pager-taglib中传递参数时中文乱码问题)
    分页技术框架(Pager-taglib)学习二(SSH数据库分页)
    分页技术框架(Pager-taglib)学习一(页面分页)
    从request获取各种路径总结
    jsp的页面包含——静态包含、动态包含
    Java对象的浅克隆和深克隆
    Java序列化与反序列化学习(三):序列化机制与原理
  • 原文地址:https://www.cnblogs.com/vsirWaiter/p/7573608.html
Copyright © 2011-2022 走看看