LUA 关于table与多维的使用

table的使用:

redat1 = {["mon"] = 1, ["tue"] = 2}
print(redat1["mon"])

redat2 = {1, 3}
print(redat2[1])

输出:1 1

二维:

d = {}
d[1123] = {["q"] = 1,["w"] = 2,["e"] = 3}
print(d[1123]["q"])

输出:1

多维:


local a = {}
a[10] = {nil, {["姓名"]="张三"},{["阿杏"] = {["年龄"] = "22"}, ["阿讯"] = {["年龄"] = "22"}}}
print(a[10][2]["姓名"])
print(a[10][3]["阿讯"]["年龄"])

输出:张三 22
时间: 2024-11-13 09:28:04

LUA 关于table与多维的使用的相关文章

uLua/toLua加载protobuf转lua的table为bool的解决方法

当我们加载protobuf对应的lua的table的时候,我们使用如下方式来加载 local person_pb = require 'Protol.person_pb' 注意,这个table前面的Protol.这段一定不能去掉,如果去掉了,你加载到的persob_pb将会是一个bool类型的值. 如果加上这个Protol.的话,你才能加载到真正有的数据表. 也许是lua和protobuf工具关联时的一个约定,也许是这样,反正要放在protol文件夹下就能加载到数据表.

Linux下C/C++和lua交互-Table

本来这些文章都是在我的个人网站www.zhangyi.studio,目前处在备案状态,暂时访问不了,所以搬到这边.  最近这两天需要弄清楚C++和lua间相互调用和数据传递,废话不多说,直接上过程. 首先是环境环境,Linux(Debian),安装lua,注意需要管理员权限. sudo apt-get install lua5.2 安装完后输入lua或者lua -v 严重是否安装成功以及安装的版本,当然,有了lua运行环境还不够我们还需要安装lua开发库既然我们安装的是lua5.2那么开发库同样

C调用lua的table里面的函数

网上搜索C.C++调用lua函数,有一大堆复制粘贴的. 但是搜索<C调用lua的table里面的函数> 怎么就没几个呢? 经过探索,发现其实逻辑是这样的: 1.根据name获取table :并判断是否为table 2.根据 name2 获取table的成员变量或方法,并判断栈顶的是否为函数 3.将函数的参数压栈,然,没有可以传入一个nil: 4.调用lua_pcall 跟调用普通lua函数的方法就一样了. 代码如下: bool call_table_func(const char * tabl

Lua学习——table

table类型实现了“关联数组”.“关联数组”是一种具有特殊索引方式的数组.不仅可以通过证书来索引它,还可以使用字符串或其他类型(除了nil)来索引它.table是Lua中主要的数据结构机制(事实也是仅有的),具有强大的功能.基于table可以以一种简单.统一和高效的方式来表示普通数组.符号表.集合.记录.队列和其他数据结构. table的特性: table是一个“关联数组”,数组的索引可以是数字或者是字符串 table 的默认初始索引一般以 1 开始 table 的变量只是一个地址引用,对 t

Lua的Table表使用例子(便于使用查询)

一.table.insert() 1.1 1 local countries = {"China", "England", "Brazil"} 2 --尾插法(Pos不填,默认插入尾部) 3 table.insert(countries, "France") 4 --头插法(首部插入) 5 table.insert(countries, 1, "Australia") 6 7 dump(countries)

Lua中table类型的源码实现

  1.概述 table是lua中唯一的表示数据结构的工具.它可以用于实现数据容器.函数环境(Env).元表(metatable).模块(module)和注册表(registery)等其他各种用途.因此了解table的实现是非常有必要的,根据<Lua中数据类型的源码实现>中知道,在Lua中,table是由结构体体Table来实现的.下面将以Lua 5.2.1的源码来看table的实现.   2.实现原理 在Lua5.0以后,table是以一种混合型数据结构来实现的,它包含一个哈希表部分和一个数

Lua整理——table库

table属性 table库是有一些辅助函数构成的,这些函数将table作为数组来操作.其中,有对列表中插入和删除元素的函数,有对数组元素进行排序的函数,还有对链接一个数组中所有字符串的函数. 0.table.getn()Lua 中我们经常假定 array 在最后一个非 nil 元素处结束. 这个传统的约定有一个弊端:我们的 array中不能拥有 nil 元素.对大部分应用来说这个限制不是什么问题,比如当所有的 array 有固定的类型的时候.但有些时候我们的 array 需要拥有 nil 元素

Lua打印table升级版

原Lua打印table有个很致命的问题,递归深度过大会导致栈溢出(stack overflow). 首先,需要明白,lua里出现栈溢出有以下情况: "too many arguments", "assume array is smaller than 2^40 ", "string slice too long", "too many captures", "too many arguments to script&

lua 的 table 处理

lua 的整体效率是很高的,其中,它的 table 实现的很巧妙为这个效率贡献很大. lua 的 table 充当了数组和映射表的双重功能,所以在实现时就考虑了这些,让 table 在做数组使用时尽量少效率惩罚. lua 是这样做的.它把一个 table 分成数组段和 hash 段两个部分.数字 key 一般放在数组段中,没有初始化过的 key 值全部设置为 nil .当数字 key 过于离散的时候,部分较大的数字 key 会被移到 hash段中去.这个分割线是以数组段的利用率不低于 50% 为