table 是 Lua 的一种数据结构
1.初始化为空表
mytable={}
2.指定table内容
mytable={}
mytable[1]='hell0'
mytable[2]='lua'
mytable[4]='easy'
for i,k in pairs(mytable) do
print(i,k)
end
--1 hell0
--2 lua
--4 easy
3.删除table,lua 垃圾回收会释放内存
mytable=nil
4)当为 table a 设置元素,然后将 a 赋值给 b,则 a 与 b 都指向同一个内存。如果 a 设置为 nil ,则 b 同样能访问 table 的元素
mytable={}
mytable[1]='hell0'
mytable[2]='lua'
mytable[4]='easy'
print("mytable value:")
for i,k in pairs(mytable) do
print(i,k)
end
copytable=mytable
print("copytable value:")
for i,k in pairs(copytable) do
print(i,k)
end
mytable=nil
print("after delete mytable,copytable value:")
for i,k in pairs(copytable) do
print(i,k)
end
print(mytable)
--[[
mytable value:
1 hell0
2 lua
4 easy
copytable value:
1 hell0
2 lua
4 easy
after delete mytable,copytable value:
1 hell0
2 lua
4 easy
nil
]]--
5)table操作
函数 | 作用 |
---|---|
table.concat (table [, sep [, start [, end]]]) | 列出从start位置到end位置的数组部分的所有元素, 元素间以指定的分隔符(sep)隔开 |
table.insert (table, [pos,] value) | 在table的数组部分指定位置(pos)插入值为value的一个元素. pos参数可选, 默认为数组部分末尾. |
table.remove (table [, pos]) | 返回table数组部分位于pos位置的元素. 其后的元素会被前移. pos参数可选, 默认为table长度, 即从最后一个元素删起 |
table.sort (table [, comp]) | 对table升序排序 |
table.concat
mytable={}
mytable[1]='hello'
mytable[2]='lua'
mytable[3]='is'
mytable[4]='easy'
print(table.concat(mytable))
print(table.concat(mytable,"-"))
print(table.concat(mytable,"-",1,3))
--[[
helloluaiseasy
hello-lua-is-easy
hello-lua-is
]]--
不能是键值对的形式,否则会报错
mytable['key1']='hello'
mytable['key2']='lua'
mytable['key3']='is'
mytable['key4']='easy'
invalid value (nil) at index 1 in table for ‘concat’
table.sort
mytable={"Tom","Bob","Lisa","Lili"}
table.sort(mytable)
for i,k in ipairs(mytable) do
print(i,k)
end
--[[
1 Bob
2 Lili
3 Lisa
4 Tom
]]--
键值对的table(如果key为整型)会根据value排序
mytable={}
mytable[2]='hello'
mytable[3]='lua'
mytable[1]='is'
mytable[4]='easy'
for i,k in pairs(mytable) do
print(i,k)
end
print("******")
table.sort(mytable)
for i,k in pairs(mytable) do
print(i,k)
end
--[[
1 is
2 hello
3 lua
4 easy
******
1 easy
2 hello
3 is
4 lua
]]--
table.insert
mytable={'he','sa','ds','lu'}
instable={}
for i,k in pairs(mytable) do
table.insert(instable,k)
end
for i,k in pairs(instable) do
print(i,k)
end
--[[
1 he
2 sa
3 ds
4 lu
]]--
table.remove
mytable={'he','sa','ds','lu','li','kk'}
instable={}
for i,k in pairs(mytable) do
table.insert(instable,k)
end
for i =0,2,1 do
table.remove(instable)
end
for i,k in pairs(instable) do
print(i,k)
end
print(instable[1])
print(instable[2])
print(instable[3])
print(instable[4])
print(instable[5])
print(instable[6])
--[[
1 he
2 sa
3 ds
he
sa
ds
nil
nil
nil
]]--
在数据仓库领域有两位大师一位是“数据仓库”之父 Bill Inmon一位是数据仓库权威...
在上一篇” 拥抱.NET Core系列:MemoryCache 初识 ”中我们基本了解了缓存的添加...
XML元素是可以扩展的,它们之间有关联。 XML元素有简单的命名规则。 XML元素是可...
在Web显示的时候我们经常会遇到分页显示,而网上的分页方法甚多,但都太过于消耗...
首先,微信小程序我使用的是微信web开发者工具 想要向后台传输数据,需要在js中...
我们已经了解到如何通过 GNU Screen 进行多会话管理。今天,我们将要领略另一个...
原封不动的传送给客户端有两个小例外: 1. 如果想传送 %或%, 由于它跟jsp的特殊符...
2020年春天以云计算、5G、人工智能为代表的“新基建”蔚然成风不仅助力中国产业...
最后写了一个IP地址的正则表达式验证程序。 复制代码 代码如下: ((25[0-5]|2[0-4...
大家一定曾经把别人的网页另存下来看过,特别是用dw打开时,你会看到,很多网页...