【问题标题】:Read data before executing lua file执行lua文件前读取数据
【发布时间】:2015-07-05 08:41:56
【问题描述】:

我想在执行之前读取 Lua 文件中的表。有没有办法用loadfile 做到这一点。它只返回一个函数,我似乎无法读取里面的内容(声明但未执行的内容)。

我尝试的另一个选项是检查环境是否发生变化,但我还是无法读取loadfile() 返回的函数内部。

有没有办法在不以文本形式打开文件并搜索表格的情况下做到这一点?

这是我尝试检索的表的示例:

--file to be loaded  
local library = require("library")  --random requires...  
table = { author = "myself", dependencies = "library > 1.0"} --table to get before execution

【问题讨论】:

    标签: lua lua-5.2


    【解决方案1】:

    你想要的都是不可能的。 Lua 中没有声明,只有可执行语句。 您需要执行一个脚本来查看它的作用。

    但是,您可以将文件作为文本读取,并尝试使用模式匹配来提取您需要的信息。这不是万无一失的,但如果文件以相同的方式编写,它可能在大多数情况下都可以工作。

    【讨论】:

    • 它应该是文件中的标准头。强制用户创建一个 main 函数我会调用它会不会很奇怪?
    • @Gopoi,一种常见的模式是让脚本返回规定的值,例如一个表值,因为正如您所发现的,loadfile 确实从文件中创建了一个函数.这在 Lua 5.2 的 require 函数中形式化了。看到这个Basic Example
    猜你喜欢
    • 2016-05-31
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 2016-05-20
    相关资源
    最近更新 更多