for-loop – Bizzare“试图在Lua中调用一个表值”

以下代码段:
for weight,item in itemlist do
    weight_total=weight_total+weight
end

在该代码段的第一行导致错误“尝试调用表值”.为什么?

Itemlist是权重和字符串表的表,如下所示:

local itemlist = {
                        {4,"weapon_pistol"},{2,"weapon_357"},...

据我所知,没有任何东西被称呼;为什么会出现这个错误

解决方法

期望3个参数的泛型:一个调用的值,一些重复传递给它的值,以及迭代开始的键.
如果不可调用,股票lua不会在传递给的第一个值上调用对,尽管有些衍生品可以.

因此,您必须使用ipairs(项目列表),对(项目列表),下一个,项目列表或任何您想要的(最后两个具有相同的行为,并且是大多数衍生品所做的).

迭代器解包值序列…

function awesome_next(t,k)
    local k,v = next(t,k)
    if not v then return end
    return k,table.unpack(v)
end
for k,a,b,c,d in awesome_next,t do
end

相关文章

1.github代码实践源代码是lua脚本语言,下载th之后运行thmai...
此文为搬运帖,原帖地址https://www.cnblogs.com/zwywilliam/...
Rime输入法通过定义lua文件,可以实现获取当前时间日期的功能...
localfunctiongenerate_action(params)localscale_action=cc...
2022年1月11日13:57:45 官方:https://opm.openresty.org/官...
在Lua中的table(表),就像c#中的HashMap(哈希表),key和...