尝试索引本地 'args'(一个函数值)

我尝试使用 %S+ 和 gmatch 将一个字符串拆分为表格。然而,我遇到了以下错误:

尝试索引本地 'args'(一个函数值)

以下是我认为存在问题的三行代码:

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

所以第一行 print(msg) 只是打印一个普通的字符串,就像应该的那样。第二行应该用空格将该字符串分割,并将表格存储在 args 中。第三行应该打印表格中的第一个值,但是它给出了上述错误。谢谢。

点赞
用户1442917
用户1442917

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

你可以查看文档或者这个SO问题,获取如何使用gmatch获取值的示例。

2016-09-29 02:22:50