Table 方法,如何 handle/inspect 它们?
Table with methods, how to handle/inspect them?
因此,在没有上下文的情况下,我有一个 returns 和 table 的方法。
尝试打印出来,似乎table主要包含要调用的方法。
然而,我对 LUA 不是很了解,我不知道如何正确获取有关我应该调用的这些方法的一些信息。
我试图从这件事的创造者那里得到文档,但据我所知有 none。而且由于这是在 computercraft (minecraft mod) 内部,所以我也没有很多功能可以依赖。
所以我只知道它是一个 table 我可以调用的方法,我如何正确地弄清楚如何调用它们,以及使用什么参数等?
仅仅知道方法的名称还不足以弄清楚如何调用它们。
他们的名字可能是一个线索,但不能保证。
如果方法写在 Lua 中,您可以使用调试 API 来发现参数名称,这可能只是指示如何调用方法。
底线:您需要文档或示例代码。
我知道这个存在,但不知道它是如何工作的。因此,以供将来参考:
您可以通过在 minecraft 聊天中执行 /op_dump 来转储您的外围设备和方法。
这会生成一个 XML,它写出它在外围设备中找到的所有方法或 objects/tables。
这意味着您必须调用每个有趣的方法一次,这会生成 table 作为 return。然后调用 /op_dump 将包含新遇到的对象以及有关那里的所有信息 methods/parameters 等
一般来说,模块/库总是带有文档,或者打印文档的方法。
但如果不是这种情况,您可以执行以下操作:
- 您可以打印 table 中的所有内容!这个是必须的,方法名可以非常有用
- 可以寻求帮助!找到使用过相同模块的人,并询问他们它是如何工作的。为什么要解决别人已经想通的问题?
- 使用
debug.getinfo
和调试库的其他 hacky 函数!他们可以提供 比 Lua 标准库中的任何其他信息都多的信息!
- C 端编码可以揭示 Lua 不能 的东西!如果您可以访问 C 端,您可以确切地 看到代码在做什么(或者至少我是这么认为的)
- 查看源代码!这向您展示了代码的作用以及它是如何做到的
- 最重要的是,实验!在不同的参数、不同的值上尝试这些方法,并通过不断的测试确定它的作用!
因此,在没有上下文的情况下,我有一个 returns 和 table 的方法。 尝试打印出来,似乎table主要包含要调用的方法。 然而,我对 LUA 不是很了解,我不知道如何正确获取有关我应该调用的这些方法的一些信息。
我试图从这件事的创造者那里得到文档,但据我所知有 none。而且由于这是在 computercraft (minecraft mod) 内部,所以我也没有很多功能可以依赖。
所以我只知道它是一个 table 我可以调用的方法,我如何正确地弄清楚如何调用它们,以及使用什么参数等?
仅仅知道方法的名称还不足以弄清楚如何调用它们。
他们的名字可能是一个线索,但不能保证。
如果方法写在 Lua 中,您可以使用调试 API 来发现参数名称,这可能只是指示如何调用方法。
底线:您需要文档或示例代码。
我知道这个存在,但不知道它是如何工作的。因此,以供将来参考: 您可以通过在 minecraft 聊天中执行 /op_dump 来转储您的外围设备和方法。
这会生成一个 XML,它写出它在外围设备中找到的所有方法或 objects/tables。
这意味着您必须调用每个有趣的方法一次,这会生成 table 作为 return。然后调用 /op_dump 将包含新遇到的对象以及有关那里的所有信息 methods/parameters 等
一般来说,模块/库总是带有文档,或者打印文档的方法。
但如果不是这种情况,您可以执行以下操作:
- 您可以打印 table 中的所有内容!这个是必须的,方法名可以非常有用
- 可以寻求帮助!找到使用过相同模块的人,并询问他们它是如何工作的。为什么要解决别人已经想通的问题?
- 使用
debug.getinfo
和调试库的其他 hacky 函数!他们可以提供 比 Lua 标准库中的任何其他信息都多的信息! - C 端编码可以揭示 Lua 不能 的东西!如果您可以访问 C 端,您可以确切地 看到代码在做什么(或者至少我是这么认为的)
- 查看源代码!这向您展示了代码的作用以及它是如何做到的
- 最重要的是,实验!在不同的参数、不同的值上尝试这些方法,并通过不断的测试确定它的作用!