LUA表与函数的深入理解

local heroInfo = {}--直接打印 table的名字,就会输出该table的内存地址
print("表地址---------------",heroInfo)--注意区别PrintInfo,PrintInfo2与TestSelf两个函数中self的不同
--有什么不?

heroInfo.PrintInfo = function(self, x)--这里的self仅是我们定义的普通参数,可以写成任何样子print("PrintInfo-------------x=", x)self.gender = "men"print("gender=", heroInfo.gender) --输出 gender=men,为什么?
end--定义函数时使用点号,self并不存在
heroInfo.PrintInfo2 = function(x)print("PrintInfo2-------------self=", self, ",x=", x)
end--定义函数时使用冒号,系统自动把表地址赋值给了self
function heroInfo:TestSelf(x)--注意,参数并没有写selfprint("TestSelf--------------self=", self, ",x=", x)self.name = "jim"print("heroInfo.name=",heroInfo.name)heroInfo.name = "none"print("self.name=", self.name)
end--函数调用
--使用冒号调用时,系统会自动把表地址传给函数的第一个参数,使用点号则不会
--这个参数可以写成self,也可以写成其它任何样子
--这类似于C++中的this指针
heroInfo:PrintInfo("hello")--改成点号调用测试下
heroInfo:PrintInfo2("hello", "world")--改成点号调用测试下
heroInfo:TestSelf(10)--改成点号调用测试下--lua中table是一个引用型变量,就像C#中的数组,类对象
local self = heroInfo --从此以后ref与heroInfo就指向同一个表了print("self.name=",self.name, "self.gender=",self.gender)
self.name = "monster"
self.gender = "unknown"
print("heroInfo.name=", heroInfo.name, "heroInfo.gender=", heroInfo.gender)

posted on 2017-02-24 10:42 时空观察者9号 阅读(...) 评论(...) 编辑 收藏

LUA表与函数的深入理解相关推荐

  1. Lua程序设计 | 字符串、表、函数与IO

    From<Programming in Lua> by Roberto Ierusalimschy 文章目录 字符串 字符串常量 长字符串/多行字符串 强制类型转换 字符串标准库 表 表索 ...

  2. Lua 表(table)

    介绍 表(Table)是Lua语言中最主要(事实上也是唯一的)和强大的数据结构.使用表,Lua语言可以以一一种简单.统一且高效的方式表示数组.集合.记录和其他很多数据结构.Lua语言也使用表来表示包( ...

  3. 【木头Cocos2d-x 029】Lua篇(第04章):来点高难度的,获取Lua表结构数据

    [木头Cocos2d-x 029]Lua篇(第04章):来点高难度的,获取Lua表结构数据 只是获取一个全局变量什么的太没意思了,今天我们来玩个高难度的--获取Lua表结构的数据. (旁白:O O!我 ...

  4. Step By Step(Lua调用C函数)

    Lua可以调用C函数的能力将极大的提高Lua的可扩展性和可用性.对于有些和操作系统相关的功能,或者是对效率要求较高的模块,我们完全可以通过C函数来实现,之后再通过Lua调用指定的C函数.对于那些可被L ...

  5. ORACLE时间函数(SYSDATE)深入理解

    ORACLE时间函数(SYSDATE)深入理解 加法  select sysdate,add_months(sysdate,12) from dual; --加1年  select sysdate,a ...

  6. memcpy函数_如何理解c语言中的回调函数

    在计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用.这一设计允许了底层代码调用在高层定义的子程序. 这段话不是那么好理解,不同语言实现回调的方式有些许不 ...

  7. lua ue_slua unreal分析(二)LuaActor与lua表互访

    相关文章: 南京周润发:slua unreal分析(一)LuaActor概览​zhuanlan.zhihu.com 南京周润发:slua unreal分析( 三)slua与GC​zhuanlan.zh ...

  8. tableau度量值计算_Tableau 基础 | 表计算函数

    才发现,一不小心写了这么多篇表计算主题的文章了: 但是呢,表计算博大精深,还会持续研究下去的. 开始研究表计算(Table Calc)的内容了,总觉得官方的help稍微有些不符合学习理解的规律 表计算 ...

  9. 【Android 逆向】函数拦截原理 ( 通过修改 GOT 全局偏移表拦截函数 | 通过在实际被调用的函数中添加跳转代码实现函数拦截 )

    文章目录 一.通过修改 GOT 全局偏移表拦截函数 二.通过在实际被调用的函数中添加跳转代码实现函数拦截 一.通过修改 GOT 全局偏移表拦截函数 使用 GOT 全局偏移表 拦截函数 , 只需要将 G ...

最新文章

  1. R语言ggplot2可视化绘制累积计数图(累加图,cumulative counts)
  2. union-find算法分析(2)
  3. 4.API的调用过程(系统服务表)
  4. (~解题报告~)L1-020 帅到没朋友 (20分)——25行代码AC
  5. Unity 音频优化方案
  6. 163 coremail_Icoremail企业邮箱
  7. 前端:JS/21/循环和数组的练习题
  8. python中文版电脑下载-Python IDLE下载
  9. 机器学习中的「相似度度量」方法及应用
  10. CVPR 2022|群核前沿院等提出首个基于数据驱动的面检测算法
  11. python实现语音机器人
  12. IP归属地解析之离线纯真数据库分享
  13. 直播行业迎来多元化发展
  14. 为胎儿诵地藏经的好处(合集)怀孕的一定要看哦!
  15. 手把手教你解决U盘快捷方式病毒
  16. matlab平均脸,BFM使用 - 获取平均脸模型的68个特征点坐标
  17. 100个相见恨晚的Python库
  18. 建行找不到服务器或DNS错误,建行浏览器打不开,提示域名解析错误,代码105,怎么解决?谢谢...
  19. java集合类的线程安全_Java集合中的线程安全问题
  20. Python3.7.1学习(一):redis的连接和简单使用

热门文章

  1. 笔记-信息系统开发基础-架构设计-软件架构主要职责
  2. Eclipse中怎样安装数据库建模工具ERMaster插件
  3. C#中使用Path、Directory、Split、Substring实现对文件路径和文件名的常用操作实例
  4. DevExpress的图形按钮菜单栏控件WindowsUIButtonPanel的布局、使用和设置按钮的点击事件
  5. oracle 存储过程 输入,Oracle 存储过程加密方法
  6. map中只有一个值 获取_小学数学,为什么一个三角形中最多只有一个直角或一个钝角...
  7. r语言plot函数x轴y轴名字_Matplotlib入门-1-plt.plot( )绘制折线图
  8. 述信科技创始人 CEO 彭圣才:传统行业如何实现数字化转型(附 PPT 下载)
  9. 喜报!神策数据入选“中国科创企业百强榜”前 3 名
  10. 神策数据与 IPIP.NET 强强联合,精准 IP 让用户行为分析更精确