lua方法点(.)调用和冒号(:)调用区别:
用.定义方法时object.func_name(arg1,arg2...),方法真正的函数签名形式为: object.func_name(arg1, arg2...)
用:定义方法时object:func_name(arg1,arg2...),方法真正的函数签名形式为: object:func_name(self, arg1, arg2...)使用.调用方法时object.func_name(arg1,arg2...),真正调用方式为:object.func_name(arg1,arg2...)
使用:调用方法时object:func_name(arg1,arg2...),真正调用方式为:object:func_name(self, arg1,arg2...)定义: object.func_name(arg1,arg2...)
调用: object.func_name(arg1,arg2...)定义: object:func_name(arg1,arg2...)
调用: object.func_name(object, arg1,arg2...) 或 object:func_name(arg1,arg2...)代码示例:
function inherit(base, derive)
derive = derive or {}
if type(base) == "table" then
setmetatable(derive, base)
base.__index = base
derive._super = base
end
return derive
end
local base = {x=1}
function base:print()
print("base class", self.y)
end
local derive = inherit(base,{y=2})
function derive:print()
print("derive class")
end
function derive:test()
self._super:print() -- base class nil
self._super.print(self) -- base class 2
self.print() -- derive class
end
derive:test()
lua方法点(.)调用和冒号(:)调用区别:的更多相关文章
- Lua中调用函数使用点号和冒号的区别
1.初学者最易混乱Top1——调用函数时用点号还是用冒号? 我们来看看下面的两句代码: mSprite.setPosition(, ); mSprite:setPosition(, ); 对于初次接触 ...
- 反射-优化及程序集等(用委托的方式调用需要反射调用的方法(或者属性、字段),而不去使用Invoke方法)
反射-优化及程序集等(用委托的方式调用需要反射调用的方法(或者属性.字段),而不去使用Invoke方法) 创建Delegate (1).Delegate.CreateDelegate(Type, ...
- C++调用DLL有两种方法——静态调用和动态调用
C++调用DLL有两种方法——静态调用和动态调用 标签: dllc++winapinullc 2011-09-09 09:49 11609人阅读 评论(0) 收藏 举报 分类: cpp(30) [ ...
- OC之方法的声明实现和调用
1. 类是来描述一群具有相同特征和行为的事物的. 类还有行为. 类的声明 @interface 类名 : NSObject { 属性. } 方法的声明 @end 类的实现. @implementati ...
- MacOS和iOS开发中异步调用与多线程的区别
很多童鞋可能对Apple开发中的异步调用和多线程的区别不是太清楚,这里本猫将用一些简单的示例来展示一下它们到底直观上有神马不同. 首先异步调用可以在同一个线程中,也可以在多个不同的线程中.每个线程都有 ...
- lua调用java java调用lua[转载]
转载:http://dualface.github.io/blog/2013/01/01/call-java-from-lua/LuaJavaBridge - Lua 与 Java 互操作的简单解决方 ...
- 转 - RPC调用和HTTP调用的区别
很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!本文简单 ...
- RPC调用和HTTP调用的区别
很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!本文简单 ...
- JS调用OC方法并传值,OC调用JS方法并传值////////////////////////zz
iOS开发-基于原生JS与OC方法互相调用并传值(附HTML代码) 最近项目里面有有个商品活动界面,要与web端传值,将用户在网页点击的商品id 传给客户端,也就是js交互,其实再说明白一点 ...
随机推荐
- 使用new分配内存的类需要自己定义拷贝构造函数
13.22 假定我们希望HasPtr的行为像一个值.即,对于对象所指向的string成员,每个对象都有一份自己的拷贝. #include<iostream> #include<str ...
- How does CCFileUTils::fullPathForFilename work
OverView The purpose of this document is show you how does function CCFileUtils::fullPathForFilename ...
- Spring – Sending E-Mail Via Gmail SMTP Server With MailSender--reference
Spring comes with a useful ‘org.springframework.mail.javamail.JavaMailSenderImpl‘ class to simplify ...
- Linux--------------安装vim
1.相关提示 -bash: vim: command not found 2.查看vim是否安装 rpm -qa|grep vim vim-en ...
- 运用json-lib生成特定json
在实现接口过程中,一般协议都是定义数据格式为json.我们有时候需要把bean转换为JSON输出给接口调用者,但是可能存在bean中的字段有些不是接口定义所需要的.这个时候需要我们对JSON转换是需要 ...
- jedis应用实例
最近将redis整合到项目中,将redis作为cache使用,未来进一步作为消息推送使用.我通过jedis和spring配置实现操作redis. spring配置 <!-- redis配置 -- ...
- bootstrap整理-1
基本的HTML模板 小伙伴们,上一小节的视频课程已经对Bootstrap提供的模板做了详细的介绍,在这一小节中我们把这个模板代码粘贴过来,以供你们学习查看,你们可以根据实际情况在此基础上进行扩展,只需 ...
- Canvas 笔记(持续更新中)
1.从线条开始 HTML <canvas id="canvas"></canvas> Javascript var canvas=document.getE ...
- Android XML解析
解析XML有三种方式:Dom.SAX.Pull 其中pull解析器运行方式与SAX类似. 我们首先认识pull解析器:http://developer.android.com/intl/zh-cn/r ...
- Kettle中通过触发器方式实现数据 增量更新
在使用Kettle进行数据同步的时候, 共有 1.使用时间戳进行数据增量更新 2.使用数据库日志进行数据增量更新 3.使用触发器+快照表 进行数据增量更新 今天要介绍的是第3中方法. 实验的思路是这样 ...