lua 中的table.getn()注意事项

lua 中table有两种

一种键值对,一种是默认序号类似数组

local table1,table2={},{a,b,c,d,e}

table.insert(table1,a=about,b=but,c=can)

 

table.getn()只能用来获取序号类table长度,不能用于键值对。

 

数组类型和table类型使用for时也不一样。

ipairs和 pairs也存在区别。

以下是一些文档

第二,范型 for 循环:
前面已经见过一个例子:
-- print all values of array ' a '

for i , v in ipairs ( a ) do print ( v ) end 
范型 for 遍历迭代子函数返回的每一个值。
再看一个遍历表 key 的例子:
-- print all keys of table ' t '
 for k in pairs ( t ) do print ( k ) end 
范型 for 和数值 for 有两点相同:
1、控制变量是局部变量
2.不要修改控制变量的值
再看一个例子,假定有一个表:
 days =(" Sunday "," Monday "," Tuesday "," Wednesday ",
" Thursday ",
" Friday "," Saturday "]
现在想把对应的名字转换成星期几,一个有效地解决问题的方式是构造一个反向表: revDays =[[" Sunday "]=1,[" Monday "]=2,
[" Tuesday "]=3,[" Wednesday "]=4,
[" Thursday "]=5,[" Friday "]=6,
[" Saturday "]=7}
下面就可以很容易获取问题的答案了:
 x =" Tuesday "
 print ( revDays [ x ])
-->3
我们不需要手工,可以自动构造反向表
 revDays =()
 for i , v in ipairs ( days ) do 
     revDays [ v ]= i 
 end 
如果你对范型 for 还有些不清楚在后面的章节我们会继续来学习。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值