定义的时候冒号默认接收self参数
调用的时候冒号默认传递调用者自己为参数
而句号要显示传递或接收self参数

-- 例如:句号定义,需要显示传递或接收

 a = { x =  }
function a.fun(self)
print(self.x)
end a.fun(a)--输出1,将a自己做为参数传给fun函数的self

这样调用要传递self,比较麻烦,所以lua给一个方便的方法
将函数定义改成冒号,就可以省略self参数

 function a:fun()
print(self.x)
end a.fun(a)

将调用改成冒号,就可省略传自己进去

 function a:fun()
print(self.x)
end a:fun()

最后说明一下,如果不用self,直接在函数里使用x是不行的

之前以为可以像c++类一样,成员函数可以直接使用类成员变量

 function a:fun()
print(x)--将输出nil,找不到这个x
end

Lua点号和冒号区别的更多相关文章

  1. LUA中点号和冒号的区别

    Student = {}; Student.__index = Student; function Student:new(name, age) local temp = {}; setmetatab ...

  2. lua --- 点号 和 冒号

    冒号的作用:1.定义函数时,给函数添加隐藏的第一个参数 self2.调用函数时,默认把当前调用者作为第一个参数传递进去 如 a:b(c) 可以理解为 a.b(a, c) 以下是用点号的定义和调用函数的 ...

  3. Lua中调用函数使用点号和冒号的区别

    1.初学者最易混乱Top1——调用函数时用点号还是用冒号? 我们来看看下面的两句代码: mSprite.setPosition(, ); mSprite:setPosition(, ); 对于初次接触 ...

  4. [转]lua面向对象编程之点号与冒号的差异详细比较

    首先,先来一段在lua创建一个类与对象的代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Class = {} Class.__index = Cl ...

  5. lua面向对象编程之点号与冒号的差异详细比较

    首先,先来一段在lua创建一个类与对象的代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Class = {} Class.__index = Cl ...

  6. lua 中pairs 和 ipairs区别

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

  7. mybatis学习$与#号取值区别

    1,多个参数传递用map或实体封装后再传给myBatis, mybatis学习$与#号取值区别 #{} 1.加了单引号,  2.#号写是可以防止sql注入,比较安全 select * from use ...

  8. LUA-点号和冒号

    由于LUA中是模拟类,没有class, 所以这里是使用.号来访问实例的成员 re.SetActive(re, re.activeSelf == false); 而冒号:  则是种语法糖,省略了上面代码 ...

  9. Lua:ipairs和pairs的区别

    ipairs 和pairs在lua中都是遍历tbale的函数但是两者有区别 1.pairs遍历table中的所有的key-vale 而ipairs会根据key的数值从1开始加1递增遍历对应的table ...

随机推荐

  1. Android Studio SVN使用

    昨天弄了一天的Android Studio svn,感觉没有eclipse的svn好装,中间遇到很多的麻烦问题.这里来记录下吧 上传比较简单,就直接贴我看我别的的上传教程. https://blog. ...

  2. kafka 怎么保证的exactly once

    Kafka auto.offset.reset值详解 发表于2017/7/6 11:25:22  1010人阅读 分类: Kafka 昨天在写一个java消费kafka数据的实例,明明设置auto.o ...

  3. Sublime Text2/3怎样在Mac OSX中配置CTags插件

    参考地址: http://jingyan.baidu.com/article/48206aeafba820216ad6b3f5.html

  4. Virtual DOM 虚拟DOM的理解(转)

    作者:戴嘉华 转载请注明出处并保留原文链接( #13 )和作者信息. 目录: 1 前言 2 对前端应用状态管理思考 3 Virtual DOM 算法 4 算法实现 4.1 步骤一:用JS对象模拟DOM ...

  5. WPF重写Button样式

    首先指定OverridesDefaultStyle属性为True: 然后添加样式: 重写ControlTemplate: <Window.Resources> <Style x:Ke ...

  6. spring websocket + stomp 实现广播通信和一对一通信<转>

    spring对于基于stomp协议的websocket通信,其官网上面有一个guide,但是根据guide你只能写出来广播方式的通信,不能实现一对一的通信,这篇文章在这里把广播和一对一一起整理一下给大 ...

  7. Tomcat配置JMX远程监控(Windown7 Linxu)

    一:Window7下配置方式. 1.配置catalina.bat 在第一行加入下面配置 注意下面这些配置要在一行,注意包含空格. set JAVA_OPTS=-Dcom.sun.management. ...

  8. systemd管理网络应用

    采用systemd-networkd管理网卡 主网卡eth0的配置文件/etc/systemd/network/20-eth0.network,静态配置时内容示例如下: [Match] Name=et ...

  9. idea properties文件unicode码问题

    在git hub上下载了个工程.但是properties文件一直显示不了中文: # \u662F\u5426\u4F7F\u7528\u8FDC\u7A0B\u914D\u7F6E\u6587\u4E ...

  10. UI设计,使用感知分层技术

    页面设计时使用感知分层技术:不同的元素用不同的颜色表示,让它看起来是位于独立的一层之上.人们在无意识的状态下,只会感知到自己关注的元素,将其他元素排除在意识之外.