当前位置:主页 > 查看内容

Lua开发-- table

发布时间:2021-07-17 00:00| 位朋友查看

简介: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……

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
]]--
;原文链接:https://blog.csdn.net/liulanba/article/details/115695642
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:【从Northwind学习数据库】数据更新 下一篇:没有了

推荐图文


随机推荐