lua - 为什么Lua中的长度不同

标签 lua coronasdk lua-table

我正在为 corona sdk 学习 Lua,我有这些

local type1 = {nil, "(", nil, "x" ,nil , ")" ; n=6}
local type2 = {"(",nil, "x",nil, ")",nil ; n=6}
print(#type1)   --prints 6
print(#type2)   --prints 3

为什么第二个不是6??

最佳答案

# 运算符并不是对每个表都起作用,它只对一个序列起作用,即它的正数字键的集合等于{1..n} 对于一些整数 n。在这种情况下,n 是它的长度。例如,local t = {"hello", 42, true} 是一个序列。

但是你的两个表都不是序列,因为它们有 nil 的“漏洞”。

参见 Lua 5.2 Reference Manual: The length operator .

关于lua - 为什么Lua中的长度不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22059329/

相关文章:

android - 为什么在尝试检查 Corona SDK 时会出现此错误?

ios - Corona SDK transition.to 和物理体不正确

lua - 如何在 Corona 中的 TableView 中插入行?

loops - lua:遍历表中的所有对

lua - 如何访问数组内表内的值?

C++ & Lua,推送 Lua 表作为参数

lua - 什么是 PREMAKE 错误 : Error: [string "src/base/api.lua"]:592: bad argument #2 to 'deferredjoin' (string expected, 获取表)?

c# - 使用 Lua 脚本返回的对象

ios - 停止功能 Corona SDK

lua - 如何改进一长串 elseif 语句?