Lua中使用.和:调用函数的区别
tb.print和tb:print的含义略微不同,:调用函数会多传递进去一个self进去,差不多相当于OOP里面的成员函数调用.
但是和OOP里面成员函数/非成员函数不同的是,lua里面的非成员函数.调用,他不是静态的.
tb对象有一个print function成员,当tb是nil的时候,你不能调用print成员的....在OOP里面,没有这么一回事,非成员函数是全局的.
例子代码:
t = {x = 1}
t.foo = function(t)
print(t.x);
end
local a = {x = 2};
print(t.foo(a), t:foo(a));
输出:
2
1
nil
相关推荐
-
Lua中使用.和:调用函数的区别
tb.print和tb:print的含义略微不同,:调用函数会多传递进去一个self进去,差不多相当于OOP里面的成员函数调用. 但是和OOP里面成员函数/非成员函数不同的是,lua里面的非成员函数.调用,他不是静态的. tb对象有一个print function成员,当tb是nil的时候,你不能调用print成员的....在OOP里面,没有这么一回事,非成员函数是全局的. 例子代码: 复制代码 代码如下: t = {x = 1} t.foo = function(t) prin
-
JS中call(),apply(),bind()函数的区别与用法详解
call() 介绍 通过提供一个新的this值给当前调用的函数/方法,从而改变this指向. 语法 fn.call(this.Arg, arg1, arg2,...) thisArg:当前调用函数this指向的对象arg1, arg2:传递的其他参数(直接传给形参可不写) 特点 可以直接调用函数—fn.call() 可以改变被调用函数的this指向为指定的— fn.call(this.Arg) 返回值 使用调用者提供的值和参数调用该函数的返回值,也就是函数的返回值.若该方法没有返回值,则返回un
-
python中根据字符串调用函数的实现方法
在python中可以根据字符串来调用函数: 1.使用getattr从字符串来调用函数 在多进程中,可能传递过来的是一个字符串,那么我怎么来调用一个已经存在的函数呢,主要就是使用到getattr函数的作用,这个函数就是在使用字符串得到这个字符串对应的函数的对象,然后就可以进行执行,如下所示: 在模块中,存在两个函数: [root@python 530]# cat attr.py #!/usr/bin/env python def kel(): print 'this is a kel functi
-
C++中CopyFile和MoveFile函数使用区别的示例分析
1.函数定义 CopyFile(A, B, FALSE);表示将文件A拷贝到B,如果B已经存在则覆盖(第三参数为TRUE时表示不覆盖) MoveFile(A, B);表示将文件A移动到B 2.函数原型 CopyFile: MoveFile: 由函数原型可以看出,这两个函数的前两个输入参数都为LRCWSTR类型,如果我们定义的是char*,记得转换成LRCWSTR,否则会报错: 另外,这两个函数都返回一个bool型变量,表示执行成功与否,当目标位置路径不存在时,会return 0 3.Demo 示
-
Lua中的一些常用函数库实例讲解
前言 这篇文章将会来一些比较轻松的内容,就是简单的介绍一下Lua中几个常用的库.简单的说就是几个API的介绍.所以说,看起来比较容易,也没有多大的分量.就是纯粹的总结.使用库就是为了方便我们的开发,提高开发效率,同时也能保证代码的质量.希望大家以后也不要重复造轮子了. 数学库 数学库(math)由一组标准的数学函数构成.这里主要介绍几个常用的函数,其它的大家可以自行百度解决. 三角函数(sin,cos,tan--) 所有的三角函数都使用弧度单位,可以用函数deg(角度)和rad(弧度)来转换角度
-
JavaScript:new 一个函数和直接调用函数的区别分析
复制代码 代码如下: function Test() { this.name = 'Test'; return function() { return true; } } var test = new Test(); // 这里的 test 是什么? 是一个 Test 对象吗?错!这里 test 是一个函数--Test 中返回的 function() { return true; }.这时,new Test() 等效于 Test(),注意,是等效于,不是等于,如果使用new Test() ==
-
JavaScript中5种调用函数的方法
这篇文章详细的介绍了Javascript中各种函数调用的方法及其原理,对于理解JavaScript的函数有很大的帮助! JavaScript,调用函数的5种方法 一次又一次的,我发现,那些有bug的Javascript代码是由于没有真正理解Javascript函数是如何工作而导致的(顺便说一下,许多那样的代码是我写的).JavaScript拥有函数式编程的特性, 当我们选择面对它的时候,这将成为我们前进的阻碍. 作为初学者,我们来测试五种函数调用的方法,从表面来看我们会认为那些函数与C#中函数的
-
详解PHP中strlen和mb_strlen函数的区别
在PHP里有两个计算字符串个数的函数一个是 strlen,一个是mb_strlen;先来看看手册中的定义strlenstrlen - 获取字符串长度int strlen ( string $string )返回给定的字符串 string 的长度. mb_strlenint mb_strlen ( string $str [, string $encoding ] )返回给定的字符串 string 的长度.encoding参数为字符编码.如果省略,则使用内部字符编码. 这么看除了mb_strlen
-
php中sprintf与printf函数用法区别解析
下面是一个示例:四舍五入保留小数点后两位 复制代码 代码如下: <?php$num1 = 21;echo sprintf("%0.2f",$num1)."<br />"; //输出 21.00$num2 = 16.3287;echo sprintf("%0.2f",$num2)."<br />"; //输出 16.33$num3 = 32.12329;echo sprintf("%0.2
-
JavaScript中各种编码解码函数的区别和注意事项
大家在使用JS提交数据时,尤其是中文的时候,经常会需要将要提交的字符串进行URL编码.在JS中对字符串进行URL编码有好几种方 法,encodeURI,encodeURIComponent,还有escape.在我看到的很多代码中escape这个函数用的最多,不过这个函数却 是不推荐使用的.下面我们来分别看看这几个函数: encodeURI:对指定的字符串进行URL编码,不包括 : # / \ = & 这些URL中的关键字符. encodeURIComponent:对字符串中的字符进行编码,包括U
随机推荐
- mysql SQL语句积累
- jQuery使用toggleClass方法动态添加删除Class样式的方法
- Extjs中ComboBoxTree实现的下拉框树效果(自写)
- CentOS 6.3 安装配置Apache2.2.6的方法(源码编译安装)
- 上传图片js判断图片尺寸和格式兼容IE
- javascript弹出层输入框(示例代码)
- 第一章之初识Bootstrap
- asp .net实现给图片添加图片水印方法示例
- 使用updatepanel局部刷新实现注册时对用户名的检测示例
- PHP合并discuz用户脚本的方法
- PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解
- Python函数中的函数(闭包)用法实例
- XSL简明教程(7)XSL 的控制语句
- JS刷新框架外页面七种实现代码
- java实现单链表、双向链表
- 有序列表ol漂亮css分页样式代码(纯css)
- PHP使用PDO操作数据库的乱码问题解决方法
- 用QQ文件共享漏洞彻底攻破Windows2003的坚固堡垒
- Linux+Nginx+Php架设高性能WEB服务器
- TextView使用SpannableString设置复合文本 SpannableString实现TextView的链接效果