lua - 尝试索引本地 'args'(函数值)

标签 lua roblox

我试图通过将 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 documentationthis SO question有关如何使用 gmatch 获取值的示例。

关于lua - 尝试索引本地 'args'(函数值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39760231/

相关文章:

c - Lua - 为什么 C 函数作为用户数据返回?

sqlite - 我如何获得单行结果? (luaSQLite3)

python - asyncio.run 运行时错误 : Event loop is closed

LUA - 如何停止脚本运行

user-interface - 为什么CoreGui RobloxLocked 在DataModel 中,为什么可信用户不能使用CoreScripts?

lua - Roblox Lua - Gamepass 提示脚本未执行

optimization - 如何在 Roblox Studio 中优化 If 语句的过度使用

performance - Lua:__index 作为函数与作为表的性能

c++ - Lua与Embedded Lisp以及其他潜在候选人。用于基于集合的数据处理

lua - 通过命令行发送 ctrl-c 时如何在 lua 中捕获 ctrl-c