从不同的Lua文件调用函数

10

我在menu.lua中有这个

local db = require "databaseconnection"
...
local function onEndBtnRelease()
    local thisandthat = db.getLoggedIn()
    native.showAlert( "Corona SDK", thisandthat.." teststring", { "OK" } )
end
...

还有这个在 databaseconnection.lua 文件中。

local function getLoggedIn()
    print("Test")
    --[[...
    ]]--

    return "some data"
end 

我只想要来自 getLoggedIn() 的 String ("some data"),但是我得到了一个错误:

...\corona\menu.lua:51:attempt to call field 'getLoggedIn' (a nil value)

输出语句永远不会被执行。 我正在使用 Corona SDK 和 Sublime,在 sqlite 请求中需要来自 isLoggedIn() 的数据。 我该如何调用这个函数?

3个回答

10

编写模块的一种直接方法是返回一个包含所需函数的表:

local M = {}

function M.getLoggedIn()
    print("Test")
    --...
    return "some data"
end 

return M

请注意,该函数需要是非“local”的,否则它将是私有的。
请参阅PiL获取其他高级方法。

0

你也可以创建一个封装类

只需在你的类(databaseconnection.lua)顶部写下面这行代码即可:

module(..., package.seeall)

然后在main.lua中调用您的函数,它将返回您想要的相同值。


0

你也可以通过以下方式获取数据。

在你的menu.lua文件中使用require("databaseconnection"),并调用get login函数。

local abc = getLoggedIn()

print (abc)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接