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的时候可以正常使用。
  • 相关阅读:
    JS实现继承的几种方式
    跨平台APP----对Cordova,APPCan,DCloud,APICloud四大平台的分析
    cordova生成的android项目导入到Android studio 2.X 中遇到的问题解决方案
    链操作相关命令(包括启动,重启,删除)
    冷钱包和热钱包有什么区别?
    常用命令之git/linux
    centos安装git,go,shasum,okexchain环境
    iterm2的下载安装与配置
    使用jsdoc-to-markdown提前js文件的文档
    基于sphinx的文档(一)将md转为rst
  • 原文地址:https://www.cnblogs.com/vsirWaiter/p/7573608.html
Copyright © 2011-2022 走看看