lua 点号与冒号操作符的区别
2016-08-07 17:00
344 查看
点号与冒号操作符的区别
看下面示例代码:local str = "abcde" print("case 1:", str:sub(1, 2)) print("case 2:", str.sub(str, 1, 2))
output:
case 1: ab case 2: ab
冒号操作会带入一个
self参数,用来代表
自己。而点号操作,只是
内容的展开。
在函数定义时,使用冒号将默认接收一个
self参数,而使用点号则需要显式传入
self参数。
示例代码:
obj={x=20} function obj:fun1() print(self.x) end
等价于
obj={x=20} function obj.fun1(self) print(self.x) end
参见 官方文档 中的以下片段: “
The colon syntax is used for defining methods, that is, functions that have an implicit extra parameter self. Thus, the statement
function t.a.b.c:f (params) body end
is syntactic sugar for
t.a.b.c.f = function (self, params) body end
”
冒号的操作,只有当变量是类对象时才需要。有关如何使用Lua构造类,大家可参考相关章节。
相关文章推荐
- Evaluation of Expression Tree
- Torch学习笔记
- lua module package.seeall选项
- Lua中os库详细介绍
- lua module环境探秘
- slua,ulua性能问题
- Lua source code 下载
- Lua知识点_高级_c++中调用Lua回调函数
- 时间处理_Lua语言
- Lua知识点_基础_package
- Lua知识点_基础_setfenv
- Lua知识点_基础_module
- Lua知识点_基础_loadfile和dofile和require
- quick3.6 lua-binding
- Lua学习笔记(二)
- Lua学习笔记(一)
- lua自定义排序函数
- 初识AndroLua+
- lua OOP实现对象的链式调用
- LuaJavaBridge - Lua 与 Java 互操作的简单解决方案