Lua 学习备忘录2

--Lua 总结之 tabel
--[[
myTable = {}
for i=1,10 do
myTable[i] = i
end
table.insert(myTable, 1,100)  
table.insert(myTable,15,85)
a = table.getn(myTable)

print("sum:"..a)
for i=1,28 do
print(myTable[i])
end

]]

--------------------总结: table.getn()  是通过寻找nil来判断结尾
--table.insert()  可以插入任何地方,但是如果中间有nil的元素,在内存中存在  但是会产生隐患,所以要确保最后一个为nil,table中间没有nil的元素

--------------------pairs()  遍历table中的每个元素,对type()的灵活使用
--[[
c = {1,2,3,4}
myName = {"zhangsan","lisi","lucy","jame","hanmeimei",c}
for index,value in pairs(myName) do
print(type(value))
if type(value) == "table" then
for i,v in pairs(value) do
print(v)
end
else
print(index,value)
end
end

]]


--可以隐约的感觉到Lua的内部,定义变量的或者函数都是一个指针,指向一块内存。每次使用的时候,Lua都会自己去调用一个类似type()这个函数来判断这个指针所指向的内存的类型。
--另外有一张全局的表,记录这全局变量和函数的指针,指向个自的内存区域,局部变量仅仅只是在堆栈里存活一小段时间,这只是我的猜测


-------------------table.remove()  这个函数没有什么好说的,但是它可以在删除后返回被删除的元素,这点可以灵活运用,比如需要将一个元素从一个tabel转移到另一个table,是不是很方便呢。
--[[
t1 = {1,2,3,4,5,6}
t2 = {}


print("t1:",#t1)
print("t2:",#t2)


a = #t1
for i=1,a do
del = table.remove(t1,1)
table.insert(t2,del)
end


print("-> t1:",#t1)
print("-> t2:",#t2)


b = #t2
for i=1,b do
print(t2[i])
end


]]

这里有篇文章很好:
<a target=_blank href="http://blog.codingnow.com/2005/10/lua_table.html">点击打开链接</a>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值