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)的个人总结的更多相关文章

  1. Lua表(table)的用法_个人总结

    Lua表(table)的用法_个人总结 1.表的创建及表的介绍 --table 是lua的一种数据结构用来帮助我们创建不同的数据类型.如:数组和字典--lua table 使用关联型数组,你可以用任意 ...

  2. Cocos2d-x 脚本语言Lua基本数据结构-表(table)

    Cocos2d-x 脚本语言Lua基本数据结构-表(table) table是Lua中唯一的数据结构.其它语言所提供的数据结构,如:arrays.records.lists.queues.sets等. ...

  3. lua的table表去重

    推荐阅读:  我的CSDN  我的博客园  QQ群:704621321  我的个人博客 方法一 用过lua的人都知道,lua的table中不允许存在相同的key,利用这个思想,我们可以将原始table ...

  4. lua表排序

    对于lua的table排序问题,一般的按照value值来排序,使用table.sort( needSortTable , func)即可(可以根据自己的需要重写func,否则会根据默认来:默认的情形之 ...

  5. lua的table表处理 及注意事项

    lua,一款很轻量级很nice很强大的脚本语言,做为lua中使用最为频繁的table表,在使用之时还是有颇多的好处与坑的: 下面是大牛 云风的一片关于lua table的blog,可使得对lua ta ...

  6. LUA表克隆方法归纳

    lua表克隆 将lua一个表, 克隆出一份为一个独立的另外一个表. 对于一个module, 如果在require之后,获得的表对象, 不能直接修改, 例如lua缓存此表, 但是多次逻辑执行, 都使用的 ...

  7. lua weak table 概念解析

    lua weak table 经常看到lua表中有 weak table的用法, 例如: weak_table = setmetatable({}, {__mode="v"}) 官 ...

  8. lua中 table 元表中元方法的重构实现

    转载请标明出处http://www.cnblogs.com/zblade/ lua作为游戏的热更新首选的脚本,其优势不再过多的赘述.今天,我主要写一下如何重写lua中的元方法,通过自己的重写来实现对l ...

  9. lua中 table 重构index/pairs元方法优化table内存占用

    转载请标明出处http://www.cnblogs.com/zblade/ lua作为游戏的热更新首选的脚本,其优势不再过多的赘述.今天,我主要写一下如何重写lua中的元方法,通过自己的重写来实现对l ...

  10. <4>Lua表

    lua表 1: lua没有数组,但是表可以代替数组的功能(数组部分与非数组部分); 开始的, 1, 2, 3 ...称连续的索引; b.Lua表的连续索引的长度(数组部分);  #表的名字; --数组 ...

随机推荐

  1. 什么是响应式设计?响应式设计的基本原理是什么?如何兼容低版本的 IE?

    响应式网站设计(Responsive Web design)的理念是:集中创建页面的图片排版大小,可以智能地根据用户行为以及 使用的设备环境(系统平台.屏幕尺寸.屏幕定向等)进行相对应的布局,无论用户 ...

  2. SSM整合 上传下载之添加商品

    上传下载细节: 导入xml配置文件!! Controller中要配置存储路径,调用transferto上传文件 上传图片 要将图片的类设置为 MultipartFile 图片下载: 源码: 页面展示: ...

  3. canvas实现碰壁反弹(单个小方块)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. UVa11400 - Lighting System Design——[动态规划]

    题干略. 题意分析: 很容易理解一类灯泡要么全部换要么全不换,其实费用节省的主要原因是由于替换灯泡类型而排除了低压电压源,于是我们就可以推断出灯泡类型替换的原则: 对于两类灯泡a1和a2,a1可以被a ...

  5. 用diiv实现多个方块居中嵌套--padding

    文章地址 https://www.cnblogs.com/sandraryan/ 案例:用diiv嵌套多个正方形,配合盒模型相关知识,使每个div在他的父元素上居中.(每个div中心点对齐) 涉及到m ...

  6. pycharm下的多个python版本共存(一)

    经历过IDLE,anaconda,和pycharn的编程环境,并进行了一段时间的项目编程后,决定使用pycharm作为以后的工作环境. 一方面因为项目组其他人推荐,另一方面在使用过程中比较顺手.当然很 ...

  7. 清除SVN未版控文件

    用Git时,git clean -df 可以清除所有没有add的文件,得到一个干净的工作空间. 用SVN没有这样的命令,当然可以 svn export 得到一个干净的工作空间,但会花很长时间,而且没有 ...

  8. JVM调优-Jstack线程分析

    jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使 ...

  9. 51nod 矩阵快速幂(模板题)

    1113 矩阵快速幂  基准时间限制:3 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 给出一个N * N的矩阵,其中的元素均为正整数.求这个矩阵的M次方.由于M次方的计算结果太大 ...

  10. ZR979B. 【十联测 Day 9】唯一睿酱

    ZR979B. [十联测 Day 9]唯一睿酱 题目大意: 给定一个数组\(r_i\),表明对于第\(i\)个数来说,他是\([max(1,i - r_i),min(n,i+r_i)]\)中最大的,求 ...