level 3
b = {}
for i = 1, 1000
do b[i] = i * 2
en
v = 1
b[#b+1] = v
print(#b)
c = {}
c[10000] = 1
c[10001] = 2
print(#c)
print(table.maxn(c))
显示结果是
1001
0
10001
为什么下面的#c是0,不是应该是2么
2014年03月31日 07点03分
1
level 13
lua的table可以同时包含数组和散列表两个部分,数组默认下标从数字1开始,并且下标是连续增加的。散列表是用字符串做下标,可以写成用“.”来连接。#这个算子是表示,求这个表的数组部分从1开始的连续部分的数量。所以楼主的例子中#c为0。
2014年03月31日 07点03分
2
明白了,刚才试了一下c = {} c[1] = 10 c[3] = 13 c[10000] = 123 print(#c) print(table.maxn(c))显示结果变成了1 10000原来是从1开始的连续部分,休息
2014年03月31日 07点03分