如何解决检索变量参数列表的长度
function countargs(...)
return #arg
end
> countargs(1,2,3)
0
在这种情况下,countargs返回0而不是3。如何获取变量参数列表的长度?
我在Windows上针对Lua 5.3和5.4进行了测试。
解决方法
function countargs(...)
local arg = {...}
return #arg
end
或
function countargs(...)
return #{...}
end
,
...
中的元素数可以通过select("#",...)
计算。请注意,与nil
之类的语法不同,这将包括所有嵌入的#{...}
元素。
但是,通常不需要直接使用长度。您真正需要的是包含相关元素的表格。要构建它,请调用table.pack(...)
。这将返回一个包含所有...
元素的表,并且长度将在键"n"
处,这使您甚至可以迭代{{1}的嵌入式nil
元素}。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。