Type: concept
Confidence: 0.90
Created: 2026-04-20
Updated: 2026-04-20
Tags: Lua数组索引UrhoX陷阱游戏开发Lua编程

Lua数组索引从1开始

概述

Lua 数组索引从 1 开始而非 0,这是 Lua 语言的核心设计,在 UrhoX 开发中极易引发 attempt to index a nil value 错误。

关键内容

  1. 循环写法for i = 1, n do 是正确的遍历方式,不是 for i = 0, n-1 do。边界计算时用 math.max(1, index) 确保索引 >= 1。
  2. 典型错误array[0] 在 Lua 中不存在,返回 nil,后续访问会触发 attempt to index a nil value 错误。这是从 JavaScript/Python/C 转 Lua 最常见的陷阱。
  3. 与 table.unpack 的关系table.unpack() 返回的元素索引同样从 1 开始,在表构造器中展开时需注意位置(只在最后位置才能完全展开)。

来源

相关