我在 Lua 中经常看到哈希字符“#”被添加到变量前面。
它有什么作用?
EXAMPLE
-- sort AIs in currentlevel
table.sort(level.ais, function(a,b) return a.y < b.y end)
local curAIIndex = 1
local maxAIIndex = #level.ais
for i = 1,#currentLevel+maxAIIndex do
if level.ais[curAIIndex].y+sprites.monster:getHeight() < currentLevel[i].lowerY then
table.insert(currentLevel, i, level.ais[curAIIndex])
curAIIndex = curAIIndex + 1
if curAIIndex > maxAIIndex then
break
end
end
end
抱歉,如果已经有人问过这个问题,我在互联网上搜索了很多,但似乎还没有找到答案。提前致谢!
那就是长度运算符 http://www.lua.org/manual/5.1/manual.html#2.5.5:
长度运算符由一元运算符 # 表示。字符串的长度是它的字节数(即每个字符为一个字节时字符串长度的通常含义)。
表 t 的长度被定义为任何整数索引 n,使得 t[n] 不为 nil 并且 t[n+1] 为 nil;此外,如果 t[1] 为零,则 n 可以为零。对于具有从 1 到给定 n 的非零值的常规数组,其长度恰好是该 n,即其最后一个值的索引。如果数组有“洞”(即其他非 nil 值之间的 nil 值),则 #t 可以是直接位于 nil 值之前的任何索引(即,它可以将任何此类 nil 值视为结束值)的数组)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)