Lua中如何获取表中的最大整数?
Lua中如何获取表中的最大整数?
How do I get the highest integer in a table in Lua?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
Lua中如何获取表中的最大整数?
How do I get the highest integer in a table in Lua?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(7)
ponzao 的另一个答案很好,但是为了更具体地回答你的问题,如果你只想获得最大的数字(而不是索引),我通常会这样做:
更进一步,只包含数组部分表并过滤掉仅数字值(以防止错误),您可以添加一些类型检查:
逻辑如下:
我知道这是一个老问题,所以OP可能不再需要这个了,但是这个页面目前在Google上排名很高,所以希望这可以帮助其他偶然发现这个页面的人。
The other answer by ponzao is good, but to answer your question more specifically, if you just want to get the highest number (and not the index as well), I usually do this:
To take it a step further and include only the array part of the table and filter out for only number values (to prevent errors), you can add some type checks:
The logic is as follows:
I know this is an old question so the OP probably doesn't need this anymore, but this page currently ranks high on Google so hopefully this can help someone else who stumbles upon this page.
如果您的表是一个数组(仅数字索引 >0),则使用 table.sort 并采用
t[#t]
(但是,这会更改表)。其他方法就像这样
If your table is an array (only numeric indices >0) then use table.sort and take
t[#t]
(however, this changes the table).Other approach would be like this
Lua 附带了一个函数来获取最大的整数键,如果这就是你想要的......
Lua comes with a function to get the highest integer key if thats what you wanted...
您忘记在解压之前添加表格,
如果您想找到最大或最小数量,这应该可以工作
you are forgetting to add table before unpack like this
this should work if you want to find the max or min number
在Lua 5.1及更早版本中,您可以使用
这受到Lua堆栈大小的限制;在 PUC Lua 5.1 上,该值的最大值可达 ca。 8000 个数字(如果堆栈空闲,即尚未进行函数调用)。
从 Lua 5.2 开始,您必须使用
table.unpack
而不是unpack
(它已被移动)。堆栈大小已显着增加,因此该方法可用于查找数十万个数字的最大值。In Lua 5.1 and earlier, you can use
This is limited by the size of the Lua stack; on PUC Lua 5.1, this gets the maximum of up to ca. 8 thousand numbers (if the stack is free, i.e. no function calls have been made yet).
Since Lua 5.2, you must use
table.unpack
instead ofunpack
(it has been moved). The stack size has been dramatically increased such that this method can be used to find the maximum of hundreds of thousands of numbers.用于实现此目的的通用函数:
使用方式如下:
A generic function for achieving this:
Which is used like this: