gpt4 book ai didi

module - Lua - 关于模块的问题

转载 作者:行者123 更新时间:2023-12-05 09:00:14 25 4
gpt4 key购买 nike

假设我想为一组 GUI 控件创建一个模块,我将如何创建一个模块来加载所有 GUI 脚本,我是否应该将这些脚本本身作为模块?我在想有一个这样的系统:

module("bgui", package.seeall)

dofile("modules/bgui/control.lua")
dofile("modules/bgui/container.lua")
dofile("modules/bgui/screenmanager.lua")
dofile("modules/bgui/form.lua")
dofile("modules/bgui/button.lua")
dofile("modules/bgui/textbox.lua")
dofile("modules/bgui/label.lua")

所有运行的文件都会将它们设置为 bgui 模块一部分的变量吗?也就是说,如果在 control.lua 中我有 control = {...},它会被定义为 bgui.control 还是我应该让 control.lua 本身成为一个模块,比如 module("bgui.control") 会像我预期的那样工作吗?

抱歉,如果这不是很清楚不得不匆忙写下,谢谢 :)

最佳答案

你实际上在这里问了两个问题:

首先,“这种在模块上加载大量文件的方式可以吗?”

答案是 - 。将该文件称为 mymodule/init.lua 是一种不成文的标准。大多数人的 ?/init.lua 包含在他们的 path 中,所以你可以只写 require('modules/bgui')init.lua 会自动加载。

这就是说,您可能想通过使用临时表和循环来删除一些代码重复:

# modules/bgui/init.lua
local files = {
'control', 'container', 'screenmanager', 'form', 'button', 'textbox', 'label'
}
for _,file in ipairs(files) do dofile("modules/bgui/" .. file .. ".lua") end

其次,“在一个文件中定义的对象在 bgui 上可用吗?”。

答案也是,只要定义变量的文件在使用变量的文件。

关于module - Lua - 关于模块的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3849642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com