我试图通过将 gmatch 与 %S+
结合使用来将一个字符串拆分成一个表。但是我遇到了错误:
Attempt to index local 'args' (a function value)
以下是我认为有问题的三行代码:
print(msg)
local args = string.gmatch(msg, "%S+")
print(args[1])
所以第一行 print(msg)
只是打印一个正常的字符串,这是它应该的。第二行假设用空格分割该字符串,并将表存储在 args 中。第三行应该打印表中的第一个值,但是它给了我上面显示的错误。谢谢。
最佳答案
string.gmatch
没有按照您期望的方式返回结果;它返回一个迭代器(一个特殊函数),然后您可以在循环中使用它来获取所需的值。这就是为什么当您尝试索引返回的函数时会出现该错误。
可以查看the documentation或 this SO question有关如何使用 gmatch
获取值的示例。
关于lua - 尝试索引本地 'args'(函数值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39760231/