【发布时间】:2014-11-01 05:39:08
【问题描述】:
如何更改 Lua 中表的长度运算符 (#),手册建议在元表中分配 __len 函数,然后将该元表分配给我要覆盖的表,但这并没有没有按预期工作?我没有在 C 端覆盖它的选项。
turtles = {1,2,3}
setmetatable(turtles, {__len = function(mytable) return 5 end})
print(#turtles)
--returns 3, should return 5
【问题讨论】:
-
Lua override # for strings 的可能重复项
-
@LarryBattle 不是真的重复,这里的操作数不是字符串,而是表格。
-
您的代码在Lua live demo 中运行良好。