尝试索引本地“args”(函数值)

Posted

技术标签:

【中文标题】尝试索引本地“args”(函数值)【英文标题】:Attempt to index local 'args' (a function value) 【发布时间】:2017-02-07 04:26:26 【问题描述】:

我试图通过使用带有%S+ 的gmatch 将字符串拆分为表格。但是我遇到了错误:

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

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

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

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

【问题讨论】:

【参考方案1】:

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

您可以查看the documentation 或this SO question 以获取有关如何使用gmatch 获取值的示例。

【讨论】:

以上是关于尝试索引本地“args”(函数值)的主要内容,如果未能解决你的问题,请参考以下文章