举例讲解Lua中的Table数据结构

2023-12-05 0 662

文中– 两个横线开始单行的注释,–[[加上两个[和]表示多行的注释–]]。

复制代码 代码如下:– Table = Lua唯一的数据结构;
— 它们是关联数组。
— 类似于PHP的数组或者js的对象,
— 它们是哈希查找表(dict),也可以按list去使用。

复制代码 代码如下:– 按字典/map的方式使用Table:

— Dict的迭代默认使用string类型的key:
t = {key1 = \’value1\’, key2 = false}

复制代码 代码如下:– String的key可以像js那样用点去引用:
print(t.key1) — 打印 \’value1\’.
t.newKey = {} — 添加新的 key/value 对。
t.key2 = nil — 从table删除 key2。

复制代码 代码如下:– 使用任何非nil的值作为key:
u = {[\’@!#\’] = \’qbert\’, [{}] = 1729, [6.28] = \’tau\’}
print(u[6.28]) — 打印 \”tau\”

复制代码 代码如下:– 对于数字和字符串的key是按照值来匹配的,但是对于table则是按照id来匹配。
a = u[\’@!#\’] — 现在 a = \’qbert\’.
b = u[{}] — 我们期待的是 1729, 但是得到的是nil:
— b = nil ,因为没有找到。
— 之所以没找到,是因为我们用的key与保存数据时用的不是同一个对象。
— 所以字符串和数字是可用性更好的key。

复制代码 代码如下:– 只需要一个table参数的函数调用不需要括号:
function h(x) print(x.key1) end
h{key1 = \’Sonmi~451\’} — 打印\’Sonmi~451\’.

复制代码 代码如下:for key, val in pairs(u) do — Table 的遍历.
print(key, val)
end

复制代码 代码如下:– _G 是一个特殊的table,用于保存所有的全局变量
print(_G[\’_G\’] == _G) — 打印\’true\’.

复制代码 代码如下:– 按list/array的方式使用:

— List 的迭代方式隐含会添加int的key:
v = {\’value1\’, \’value2\’, 1.21, \’gigawatts\’}
for i = 1, #v do — #v 是list的size
print(v[i]) — 索引从 1 开始!! 太疯狂了!
end
— \’list\’并非真正的类型,v 还是一个table,
— 只不过它有连续的整数作为key,可以像list那样去使用。

您可能感兴趣的文章:

  • 深入谈谈lua中神奇的table
  • Lua Table转C# Dictionary的方法示例
  • Lua中设置table为只读属性的方法详解
  • Lua编程示例(一):select、debug、可变参数、table操作、error
  • Lua table中安全移除元素的方法
  • Lua的table库函数insert、remove、concat、sort详细介绍
  • C++遍历Lua table的方法实例
  • Lua中释放table占用内存的方法
  • Lua中table的遍历详解
  • Lua中获取table长度问题探讨
  • Lua中获取table长度的方法
  • Lua中table里内嵌table的例子
  • Lua面向对象编程之基础结构table简例

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Lua 举例讲解Lua中的Table数据结构 https://www.u-9.cn/jiaoben/lua/101581.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务