Lua表(table)的个人总结
1.表的简介和构造
table是个很强大且神奇的东西,又可以作为数组和字典,又可以当作对象,设置module。它是由数组和哈希表结合的实现的。他的key可以是除nil以外任意类型的值,key为整数时,就可以当作一个数组了。
构造:
mtable={} --创建一个空表
mtable[1]="Hello” --指定值
mtable[1]=nil --删除元素
mtable=nil --移除引用
2.表的常见函数
①table.sort(table [,compare])排序
②table.insert(table [,pos], value)插入,默认插入末尾
③table.remove(table [, pos])移除,默认从尾部开始移除
④table.concat(table [,sep [,start [,end]]]) 连接,把table里从start到end的元素以sep为分隔符连接起来。
3.模块
模块(module),lua是通过table来实现模块的。
创建一个lua模块文件module.lua,代码如下:
-- 通常是加local的,加了local是局部变量,需要return一下。
-- 如果不加,则M默认注册到_G中,require后,即使不return也可以直接使用M。
local module = {} -- 定义一个常量
module.constant = "这是一个常量" -- 定义一个函数
function module.func1()
print("这是一个公有函数!")
end local function func2()
print("这是一个私有函数!")
end function module.func3()
func2()
end return module
关于使用module,lua提供了require函数用来加载模块。加载上面所写的模块,require “module”或者require("module")。加载路径存在全局变量package.path里。
4.面向对象
lua可以通过table+function模拟类,table描述属性,function表示方法。
简单的例子如下:
Animal={age=0,weight=0}
function Animal:new(o,age,weight)
o=o or {}
setmetatable(o,self)
self.__index=self
age=age or 0
weight=weight or 0
return o
end
function Animal:printWeight()
print("动物的体重:",self.weight)
end
Lua继承,是一个对象对象直接使用另一个对象的属性与方法。可用于扩展基础类的属性和方法,可以重写基础类的函数。例子如下:
Dog= Animal:new() function Dog:new(o,age,weight)
o=o or Animal:new(o,age,weight)
setmetatable(o,self)
self.__index=self
return o
end function Dog:printWeight()
print("狗的体重:",self.weight)
end
Lua表(table)的个人总结的更多相关文章
- Lua表(table)的用法_个人总结
Lua表(table)的用法_个人总结 1.表的创建及表的介绍 --table 是lua的一种数据结构用来帮助我们创建不同的数据类型.如:数组和字典--lua table 使用关联型数组,你可以用任意 ...
- Cocos2d-x 脚本语言Lua基本数据结构-表(table)
Cocos2d-x 脚本语言Lua基本数据结构-表(table) table是Lua中唯一的数据结构.其它语言所提供的数据结构,如:arrays.records.lists.queues.sets等. ...
- lua的table表去重
推荐阅读: 我的CSDN 我的博客园 QQ群:704621321 我的个人博客 方法一 用过lua的人都知道,lua的table中不允许存在相同的key,利用这个思想,我们可以将原始table ...
- lua表排序
对于lua的table排序问题,一般的按照value值来排序,使用table.sort( needSortTable , func)即可(可以根据自己的需要重写func,否则会根据默认来:默认的情形之 ...
- lua的table表处理 及注意事项
lua,一款很轻量级很nice很强大的脚本语言,做为lua中使用最为频繁的table表,在使用之时还是有颇多的好处与坑的: 下面是大牛 云风的一片关于lua table的blog,可使得对lua ta ...
- LUA表克隆方法归纳
lua表克隆 将lua一个表, 克隆出一份为一个独立的另外一个表. 对于一个module, 如果在require之后,获得的表对象, 不能直接修改, 例如lua缓存此表, 但是多次逻辑执行, 都使用的 ...
- lua weak table 概念解析
lua weak table 经常看到lua表中有 weak table的用法, 例如: weak_table = setmetatable({}, {__mode="v"}) 官 ...
- lua中 table 元表中元方法的重构实现
转载请标明出处http://www.cnblogs.com/zblade/ lua作为游戏的热更新首选的脚本,其优势不再过多的赘述.今天,我主要写一下如何重写lua中的元方法,通过自己的重写来实现对l ...
- lua中 table 重构index/pairs元方法优化table内存占用
转载请标明出处http://www.cnblogs.com/zblade/ lua作为游戏的热更新首选的脚本,其优势不再过多的赘述.今天,我主要写一下如何重写lua中的元方法,通过自己的重写来实现对l ...
- <4>Lua表
lua表 1: lua没有数组,但是表可以代替数组的功能(数组部分与非数组部分); 开始的, 1, 2, 3 ...称连续的索引; b.Lua表的连续索引的长度(数组部分); #表的名字; --数组 ...
随机推荐
- gSOAP calc服务端与客户端示例
1. Web服务定义描述头文件 typedef double xsd__double; int ns__add(xsd__double a, xsd__double b, xsd__double &a ...
- java操作数组的工具类-Arrays
static int binarySearch(type[] a, type key) 使用二分搜索法来搜索key元素在数组中的索引:若a数组不包括key,返回负数.(该方法必须已按升序排列后调用). ...
- python3在pycharm中为什么导入random模块不能用? TypeError: 'module' object is not callable
新手学python求大神指导,也用sys导入了random.py的路径,仍然不行. 刚刚排错貌似找到了问题的原因...那是因为我在pycharm中新建的python文件名就是random,所以当前目录 ...
- H3C 基本ACL
- H3C 查看RIP的debugging信息
- 【codeforces 761C】Dasha and Password(贪心+枚举做法)
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- 140种Python标准库、第三方库和外部工具
导读:Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连 ...
- H3C RIP路由表的初始化
- js粘贴图片并显示
var fromDa; $(function(){ document.getElementById('app').addEventListener('paste', function(e) { if( ...
- vmware虚拟机卸载干净在注册表的也需要删除