吉文翔 2019-07-16 01:36
浏览 183

Lua中关于可变参数和ipairs,pairs之间的疑惑 , 参数长度到底是几?

函数可变参数 ...

如果传入1,2,3。 3个参数

用#打印arg长度为3

如果用ipairs遍历arg的值,得到的是1,2,3

但如果用pairs遍历arg的值,得到的却是1,2,3,3,最后一位为长度

用变量接收 ... 以后 , 用pairs遍历 , 却是1,2,3

这样为什么#打印出来的长度不为4 , 用变量接收之后发生了什么??

test(1,2,3)
function test(...)
    print(#arg)  --长度为3

    for k,v in pairs(arg) do
            print(v)--得到结果1,2,3,3
    end

    for k,v in ipairs(arg) do
            print(v)--得到结果1,2,3
    end

    local var = {...}
    for k,v in pairs(var) do
            print(v)--得到结果1,2,3
    end
end
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 delta降尺度计算的一些细节,有偿
    • ¥15 Arduino红外遥控代码有问题
    • ¥15 数值计算离散正交多项式
    • ¥30 数值计算均差系数编程
    • ¥15 redis-full-check比较 两个集群的数据出错
    • ¥15 Matlab编程问题
    • ¥15 训练的多模态特征融合模型准确度很低怎么办
    • ¥15 kylin启动报错log4j类冲突
    • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
    • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序