lua的数据结构

lua的数据结构
table是Lua中唯一的数据结构,其他语言所提供的其他数据结构比如:arrays、records、lists、queues、sets等,Lua都是通过table来实现。
 
数组:
a = {} -- new array
for i=1, 1000 do
    a[i] = 0
end 
 
下标可以从任意数值开始
比如:
arr = {}
for a=0.1,10,0.1
do
 arr[a] = a*123.456
 print (arr[a])
end
lua习惯下标从1开始,这样可以使用标准库
 
矩阵和多维数组:
 
每行一个table,
mt = {} -- create the matrix
for i=1,N do
  mt[i] = {} -- create a new row
  for j=1,M do
    mt[i][j] = 0
  end
end
 
所有数据在一个table中
mt = {} -- create the matrix
for i=1,N do
  for j=1,M do
    mt[i*M + j] = 0
  end
end
 
 
链表:
list = nil
在list前插入一个元素:
list = {next = list, value = v}
 
遍历:
local l = list
  while l do
    print(l.value)
    l = l.next
  end
 队列:
List = {}
function List.new ()
  return {first = 0, last = -1}
end
左侧添加,first减1,左侧删除first加1,
右侧添加,last加1,右侧删除last减1,
first大于last则表示队列空
 
集合:
这是一个关键字的集合:
reserved = {
["while"] = true, ["end"] = true,
["function"] = true, ["local"] = true,
}
说明:集合的元素是table的键,而不是值。
原始集合是:{"while", "end", "function", "local", }
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值