Sch*_*ote 12 lua for-loop runtime-error next garrys-mod
以下代码段:
for weight, item in itemlist do
weight_total=weight_total+weight
end
Run Code Online (Sandbox Code Playgroud)
在该代码段的第一行导致错误"尝试调用表值".为什么?
Itemlist是权重和字符串表的表,如下所示:
local itemlist = {
{4,"weapon_pistol"},
{2,"weapon_357"},
...
Run Code Online (Sandbox Code Playgroud)
据我所知,没有任何东西被称呼; 为什么会出现这个错误?
Ded*_*tor 18
泛型for需要3个参数:一个可调用值,一些重复传递给它的值,以及迭代开始的键.
如果不可调用的话,股票lua不会在传递给的第一个值上调用对,尽管有些衍生品可以调用.
因此,你必须使用ipairs(itemlist),pairs(itemlist),next, itemlist或任何你想要的(最后两个具有相同的行为,并且是大多数衍生品做).
迭代器解包值序列...
function awesome_next(t, k)
k, t = next(t, k)
if not t then return end
return k, table.unpack(t)
end
for k, a, b, c, d in awesome_next, t do
end
Run Code Online (Sandbox Code Playgroud)