微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在lua中,有前向声明吗?

如何解决在lua中,有前向声明吗?

我在 lua 中编写了很多相互调用函数

lua 中有没有“前向声明”这样的概念?

这将允许我声明所有没有实现的函数,然后在以后实现它们。然后我会摆脱函数的顺序问题。

解决方法

是的,可见性从上到下。 您可以声明没有值的局部变量。

local func -- Forward declaration. `local func = nil` is the same.

local function func2() -- Suppose you can't move this function lower.
    return func() -- used here
end

function func() -- defined here
    return 1
end
,

您可以在表中定义您的函数。

local lib = {}

function lib.func2()
    return lib.func()
end

function lib.func()
    return 1
end

这最大限度地减少了文件顶部所需的特定声明。 它确实增加了索引可能相关且值得注意的表的成本。

如果您要返回库,这也会公开函数,如果某些函数旨在对文件中的代码“私有”,则可能不需要。在这种情况下,我们可以添加第二个表

local lib = {}
local private = {}

function lib.func2()
    return private.func()
end

function private.func()
    return 1
end

return lib

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。