lua知识点-maxn

前言#

今天来看一个关于table的一个简单的函数,我们知道Lua数组中的索引一般从1开始,那么数组的length就等于数组的最大索引,但是当数组下标不是连续时,我们要活的最大索引要怎么办,那就需要使用我们今天所讲的函数了。

内容#


table.maxn()##

  • 原型:table.maxn (tab_table)
  • 解释:返回一个表tab_table中的最大正数索引,如果没有正数索引的话返回0。

Uasge##

  • 首先新建一个文件命名为maxntest.lua然后编写如下代码:

 

-- 各种索引都存在
local tabLanguage = { 
    up ="Lua",
    "c",
    "c++",
    [100] = "end",
    realend = "realend",
    [-1] = "haha";
};

for k,v in pairs(tabLanguage) do
    print(k,v)
end
print("LUA>>>>>>the maxn of table tabLanguage :", table.maxn(tabLanguage), "\n")

-- 使用默认数字索引
local tabTest1 = { 
    "c",
    "c++",
    "php"
};

for k,v in pairs(tabTest1) do
    print(k,v)
end
print("LUA>>>>>>the maxn of table tabTest1 :", table.maxn(tabTest1), "\n")

-- 负数索引
local tabTest2 = { 
    [-1] = "c",
    [-100] = "c++",
    [-10] = "php",
};

for k,v in pairs(tabTest2) do
    print(k,v)
end
print("LUA>>>>>>the maxn of table tabTest2 :", table.maxn(tabTest2), "\n")

-- 非数字索引
local tabTest3 = { 
    first = "c",
    second = "c++",
    third = "php"
};

for k,v in pairs(tabTest3) do
    print(k,v)
end
print("LUA>>>>>>the maxn of table tabTest :", table.maxn(tabTest3), "\n")
  • 运行结果

table_maxn.png

总结#

  • 这个函数比较简单,行为和函数解释一致,不要求索引必须连续,返回一个最大的正数索引。
  • 有运行结果可知,当表中只有非数字索引或者负数索引时,函数返回0。
  • 其中官方文档中有一句话,大意是说这个函数的工作原理就是线性的遍历了这个表。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值