2016-09-29 50 views
2

我试图通过使用gmatch与%S+分割字符串到表中。不过,我跑进了错误:尝试索引本地“参数”(函数值)

Attempt to index local 'args' (a function value)

这里有三行代码我认为有问题:

print(msg) 
local args = string.gmatch(msg, "%S+") 
print(args[1]) 

所以第一线print(msg)只是打印普通的字符串,因为它应该。第二行假设用空格分隔该字符串,并将表存储在args中。第三行假设打印表中的第一个值,但是它却给了我上面显示的错误。谢谢。

回答

5

string.gmatch不会像您期望的那样返回结果;它会返回一个迭代器(一个特殊函数),然后您可以在循环中使用它来获取所需的值。这就是为什么当您尝试索引返回的函数时出现此错误的原因。

有关如何使用gmatch获取值的示例,请查看the documentationthis SO question

+0

非常感谢! – Frosty