local myTable = {}

 function myTable:putMyname(val)
print(val)
print(self and self.name)
end myTable.name = "Mical"
myTable:putMyname()
--结果:nil
-- Mical --说明“:”调用时传了一个默认参数self进去,并在用":"定义的函数内可使用,且这个参数不能被":"定义的函数de参数列表接收。 myTable.putMyname()
--结果:nil
-- 报错,putMyname里的self为1 --说明“.”调用“:”定义的函数时,第一个参数会被赋值为self,参数列表接收的值从第二个参数开始。 function myTable.putMyAge(age)
print(age)
print(self and self.age)
end myTable.age =
myTable:putMyAge()
--结果:table:002DD348
-- nil --说明“:”调用时默认传递的self可被“.”定义的函数的参数列表接收 myTable.putMyAge()
--结果:nil
-- nil --说明:正常调用 --总结:
--[[
“:”掉用的时候会把自己传进去,对于“:”定义的函数不在参数列表体现,直接函数中用self获取,而“.”定义的函数被第一个参数接收。
“.”调用“:”定义的函数时,第一个参数会被捕获用于self的赋值,所以参数列表从第二个值开始接收。
]]

lua中.和:的区别的更多相关文章

  1. lua 中 . 和 : 的区别

    lua 中 . 和 : 的区别 首先在lua中使用":"定义的函数会自动传入一个名为self的变量,这个变量是隐含的,self同c++中的this一样,表示当前对象的指针:而&qu ...

  2. lua 中pairs 和 ipairs区别

    lua 中pairs 和 ipairs区别 标准库提供了集中迭代器,包括迭代文件每行的(io.lines),迭代table元素的(pairs),迭代数组元素的(ipairs),迭代字符串中单词的 (s ...

  3. Lua中“.”调用方法与“:”调用方法的区别

    Lua中“.”调用方法与“:”调用方法的区别:                                                                             ...

  4. lua中 table.getn(t) 、#t、 table.maxn(t) 这三个什么区别?

    lua中 table.getn(t) .#t. table.maxn(t) 这三个什么区别? RTlocal t = {1,888,x= 999,b=2,5,nil,6,7,[10]=1,8,{z = ...

  5. Lua中 pairs和ipairs的区别

    Lua系列–pairs和ipairsLua中Table的存储方式在看二者的区别之前,我们首先来看一下Lua中的table是如何在内存中进行分配的.Table的组成:1.哈希表 用来存储Key-Valu ...

  6. lua中的table、stack和registery

    ok,前面准备给一个dll写wrapper,写了篇日志,看似写的比较明白了,但是其实有很多米有弄明白的.比如PIL中使用的element,key,tname,field这些,还是比较容易混淆的.今天正 ...

  7. lua中for循环的四种遍历方式

    lua中for的四种遍历方式区别 table.maxn 取最大的整数key #table 从1开始的顺序整数最大值,如1,2,3,6 #table == 3   key,value pairs 取每一 ...

  8. lua中得栈

    如果你看了LUA的文档,那么就应该很清楚LUA与C交互数据时都是用到LUA中所谓的stack.那么当我调用lua_open函数之后栈是什么样的呢?空的(luaopen_base等会往栈上加进一些东西) ...

  9. Lua中的weak表——weak table

    弱表(weak table)是一个很有意思的东西,像C++/Java等语言是没有的.弱表的定义是:A weak table is a table whose elements are weak ref ...

随机推荐

  1. Java Web_过滤器

    过滤器分类: Servlet2.5: request:用户直接访问页面时,Web容器将会调用过滤器. forward:目标资源是通过RequestDispatcher的forward访问时,该过滤器将 ...

  2. Nginx服务的地址重写

    调整Nginx服务器配置,实现: 1.所有访问a.html的请求,重定向到b.html; 2.所有访问Nginx服务器(192.168.4.1)的请求重定向至www.baidu.com: 3.所有访问 ...

  3. Java中类似单元格之间的计算公式解析,如A1+B3-B4

    package net.riking.util; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; ...

  4. LA 3938

    After doing Ray a great favor to collect sticks for Ray, Poor Neal becomes very hungry. In return fo ...

  5. 洛谷P1426 小鱼会有危险吗【水题模拟】

    有一次,小鱼要从A处沿直线往右边游,小鱼第一秒可以游7米,从第二秒开始每秒游的距离只有前一秒的98%.有个极其邪恶的猎人在距离A处右边s米的地方,安装了一个隐蔽的探测器,探测器左右x米之内是探测范围. ...

  6. 天翼云 RDS数据库操作

    1.RDS数据库创建好之后点击RDS实例管理找到已下信息 官方文档 -1:http://www.ctyun.cn/help/qslist/567 官方文档 -2:http://www.ctyun.cn ...

  7. Dell R720修改远程管理口的密码

    今天有个客户需要通过远程管理口来查看系统事件日志,但是他们把初始密码改过并且还给忘记了.后来我决定进操作系统(cent os)进行修改.整个过程很简单,进入系统后只需要三个步骤就解决问题了 1.安装软 ...

  8. shell脚本编程及bash特性

    bash特性及bash脚本编程初步 终端,附着在终端的接口程序; GUI: KDE,GNome,Xfce CLI: /etc/shells bash的特性: 命令行展开: ~,{} 命令别名: ali ...

  9. 了解CSS overflow属性 标签: htmlcss属性 2016-12-31 14:38 75人阅读 评论(1)

    overflow属性规定当内容溢出元素框时如何显示. 例:div { width:150px; height:150px; overflow:scroll; } 可能的值有: 值           ...

  10. base64模块 简单了解

    base64,字符串文本编码解码,方便数据进行传输 import base64 '''编码解码''' st = 'ni hao'.encode('utf8') result = base64.b64e ...