You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lua5.1中unpack函数为何无法正确解析非连续索引表?

Lua 5.1中unpack函数的行为误区
  • 你忽略了Lua 5.1里unpack函数的核心遍历规则:它默认从表的索引1开始依次取值,一旦遇到第一个nil就停止返回,不会继续扫描后续的非nil元素。
  • 你的表t中t[1]和t[2]都是nil,所以unpack(t)只会返回一个nil,把这个结果赋值给三个变量时,三个变量自然全是nil。而直接通过t[1]、t[2]、t[3]访问是精准定位索引,所以t[3]能正确拿到值。
  • 如果想让unpack遍历到索引3,需要手动指定起始和结束索引:
    local a, b, c = unpack(t, 1, 3)
    
    这样赋值后,a和b是nil,c会正确得到"continent"。

内容的提问来源于stack exchange,提问作者dodecaplex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 18:24:51