定义的时候冒号默认接收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

最新文章

  1. POJ 3667 Hotel(线段树 区间合并)
  2. Hyper-V架构与VMware ESXi的差异
  3. 【转载】Android端手机测试体系
  4. leetcode 126. Word Ladder II ----- java
  5. 崩溃信息:Message from debugger: Terminated due to signal 9
  6. 关于静态库和动态库的理解(C++)
  7. C++ 异常处理执行过程
  8. Multiscale Combinatorial Grouping 学习和理解源代码(一)
  9. vim中使用gdb。
  10. Session 的原理及最佳实践
  11. 网络工具nslookup的使用
  12. js算法初窥04(算法模式01-递归)
  13. Bioinfo online workshop
  14. decimal(19,6)什么意思
  15. MySQL(Python+ORM)
  16. python中RabbitMQ的使用(工作队列)
  17. TVB三个台
  18. electron demo项目npm install安装失败解决办法
  19. 视频播放效果--video.js播放mp4文件
  20. php利用curl获取网页title内容

热门文章

  1. [转]JSP页面的动态包含和静态包含示例及介绍
  2. thinkphp继承高级model后的乐观锁运用(测试中)
  3. 【Unity】使用JSONObject解析Json
  4. netable 禁用拖动
  5. centos7配置kerberos服务,并使用JAAS登录
  6. nvalid bound statement (not found)
  7. greendao数据库初次使用的配置及多表关联的初始化
  8. OSPF的特征、术语、包类型、邻居关系的建立、RID的选择、DR和BDR的选举、度量值的计算、默认路由、验证
  9. SDRAM 学习笔记(一)
  10. thinkphp 无限极分类的数据库设计及效果测试