lua中.和:的区别
2016-04-08 13:27
316 查看
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 = 12 myTable:putMyAge() --结果:table:002DD348 -- nil --说明“:”调用时默认传递的self可被“.”定义的函数的参数列表接收 myTable.putMyAge() --结果:nil -- nil --说明:正常调用 --总结: --[[ “:”掉用的时候会把自己传进去,对于“:”定义的函数不在参数列表体现,直接函数中用self获取,而“.”定义的函数被第一个参数接收。 “.”调用“:”定义的函数时,第一个参数会被捕获用于self的赋值,所以参数列表从第二个值开始接收。 ]]
相关文章推荐
- LuaJit ffi 访问C中的结构体
- Lua语法基础(1)---简介、基本数据类型、表达式
- [LUA] Lua 开发环境搭建 MAC
- lua探索--------------(setfenv、getfenv相关)
- lua的Metatables和Metamethods
- lua脚本之lua语言简介以及lua的安装
- Lua学习笔记-习题9.3
- 云风的博文《Lua C API 的正确用法》读后总结
- evaluateScript--evaluatePopoverScript--区别
- Lua学习笔记-9.4章-非抢占式的多线程
- Lua学习笔记六——package
- LUA require 搜索路径指定方法
- ngx_lua访问数据库
- lua使用table.concat连接大量字符串
- lua探索--------------(_G相关)
- LuaSQLite3 搭建使用过程
- Lua学习教程之 可变參数数据打包与解包
- Programming in Lua
- 我和Lua并非一见钟情,我们期待着日久生情(相遇篇)
- Embedding LuaJIT in 30 minutes (or so)