table在前面作过介绍,它是一种关联数组,这种关联指的是可以设置各类类型的key来存储值。

1.table 间的数据传递

     -- 为 table a 并设置元素,然后将 a 赋值给 b,则 a 与 b 都指向同一个内存地址
-- 如果 a 设置为 nil ,则 b 同样能访问 table 的元素。
-- 如果没有指定的变量指向a,Lua的垃圾回收机制会清理相对应的内存。

   mytable = {};
print("mytable的类型是:",type(mytable)); mytable[] = "lua"
mytable["wow"] = "修改前的值" print("mytable 索引为1的元素是:",mytable[])
print("mytable 索引为wow的元素是:",mytable["wow"]) beforetable = mytable;
print("beforetable 索引为1的元素是:",beforetable[])
print("mytable 索引为wow的元素是:",mytable["wow"])
beforetable["wow"] = "修改后的值"
print("mytable 索引为wow的元素是:",mytable["wow"]) -- 释放变量
beforetable = nil;
print("beforetable是:",beforetable) -- mytable 仍然可以访问
print("mytable索引为wow的元素是:",mytable["wow"])
mytable = nil;
print("mytable是:",mytable)

2.table的操作

-- table 的操作:
-- 1.连接 table.concat()
-- 2.插入 table.insert();在数据的指定位置插入元素,默认在末尾
-- 3.移除 table.remove(table,pos) 移除指定位置的元素
-- 4.排序 table.sort(table) fruits = {"banana","orange","apple"}    --- 连接操作
print("连接后的字符串是:",table.concat(fruits));
-- 指定符号连接
print("连接后的字符串是:",table.concat(fruits,", "));
-- 指定索引连接
print("连接后的字符串是:",table.concat(fruits,", ",,));

   --- 插入操作
table.insert(fruits,,"pear")
print("插入后的元素是:",fruits[])    --- 移除操作
print("移除前是:",table.concat(fruits,", "));
table.remove(fruits,);
print("移除前后:",table.concat(fruits,", "));
      --- 排序操作
print("排序前:")
for i, v in pairs(fruits) do
print(i,v)
end table.sort(fruits)
print("排序后:")
for i, v in pairs(fruits) do
print(i,v)
end

lua table 的操作(四)的更多相关文章

  1. Lua 学习之基础篇四<Lua table(表)>

    table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组.字典等. Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil. Lua ta ...

  2. lua table remove元素的问题

    当我在工作中使用lua进行开发时,发现在lua中有4种方式遍历一个table,当然,从本质上来说其实都一样,只是形式不同,这四种方式分别是: for key, value in pairs(tbtes ...

  3. lua table长度解析

    先来看lua table源码长度获取部分(ltable.c) j是数组部分的长度.首先判断数组长度大于0,并且数组最后一个是nil,就用二分法查找,返回长度. 如果t->node是 table的 ...

  4. Lua table(表)

    table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组.字典等. Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil. Lua ta ...

  5. lua table integer index 特性

    table.maxn (table) Returns the largest positive numerical index of the given table, or zero if the t ...

  6. 树形打印lua table表

    为方便调试lua程序,往往想以树的形式打印出一个table,以观其表内数据.以下罗列了三种种关于树形打印lua table的方法;法一 local print = print local tconca ...

  7. lua table 排序--满足多条件排序

    前提 假设 一个小怪 有三种属性,等级(level).品质(quality).id(pid) 我们需要对他们进行排序,两种排序情况,第一是单一属性排序,比如按照等级进行排序,或者多种属性进行优先级排序 ...

  8. cocos2d-x lua table数据存储

    cocos2d-x lua table数据存储 version: cocos2d-x 3.6 1. 将table转为json http://blog.csdn.net/songcf_faith/art ...

  9. cocos2d-x lua table与json的转换

    cocos2d-x lua table与json的转换 version: cocos2d-x 3.6 1.引入json库 require("src/cocos/cocos2d/json&qu ...

随机推荐

  1. pat 甲级 1064 ( Complete Binary Search Tree ) (数据结构)

    1064 Complete Binary Search Tree (30 分) A Binary Search Tree (BST) is recursively defined as a binar ...

  2. 【概率论】1-1:概率定义(Definition of Probability)

    title: [概率论]1-1:概率定义(Definition of Probability) categories: Mathematic Probability keywords: Sample ...

  3. intle官方手册下载

    如题:https://software.intel.com/en-us/articles/intel-sdm#three-volume 方便哪些不会怎么搜索的同学吧. 链接: https://pan. ...

  4. ROS indigo下Kinect v2的驱动安装与调试

    ROS indigo下Kinect v2的驱动安装与调试 一.libfreenect2源码安装与测试 github地址:https://github.com/OpenKinect/libfreenec ...

  5. Linux设备驱动程序 之 中断和锁

    中断和锁 1. 硬中断和软中断(包括tasklet和timer)共享数据,硬中断中使用spin_lock/spin_unlock,软中断中使用spin_lock_irq/spin_unlock_irq ...

  6. MAC升级Nodejs和Npm到最新版及CNPM使用

    1.MAC升级Nodejs和Npm到最新版 第一步,先查看本机node.js版本: node -v 第二步,清除node.js的cache: sudo npm cache clean -f 第三步,安 ...

  7. ELK日志解决方案

    1.方案整体设计 FileBeats+Logstash+ElasticSearch+Kibana 1)ElasticSearch 简称ES,用来做日志数据的存储,当然也可以存储其他数据, ES是互联网 ...

  8. JAVA的main方法

    在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方 法有很大的不同,比如方法的名字必须是main,方法必须 ...

  9. PHP学习之工厂方法模式

    <?php //工厂方法模式 interface Doing { function eat(); function sleep(); } class Cat implements Doing { ...

  10. CDH构建大数据平台-Kerberos高可用部署【完结篇】

    CDH构建大数据平台-Kerberos高可用部署[完结篇] 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  一.安装Kerberos相关的软件包并同步配置文件 1>.实验环境 ...