lua - 从 Lua 中的模块内部引用模块中的变量/函数
问题描述
我正在编写电梯控制器。它使用一个“API”模块,具有类似的功能和类似的OpenDoor()
值Floor
。如何在模块中使用这些值?
我试过使用self
没有运气。
local API = {
Lift=script.Parent,
--and now the problem
LiftCar=(self?).Lift.Car,
}
return API
当我尝试使用时,由于不存在self
而出现错误。self
解决方案
Lua 中没有模块作为语言特性,只有表和词法范围。
如果您使用表格来表示您的模块(您这样做),您必须像处理表格一样处理它:LiftCar = API.Lift.Car
,在您的情况下这是不可能的,因为API
在解析分配时尚未定义local .
Lua 书的这一章总结了各种制作模块的方法。
两种最简单的方法是预先定义表:
local API = {}
API.Lift = script.Parent
...
或者将所有内容定义为本地并随后填充表格:
local function myfunction() do_something() end
local API = {my = myfuncion}
第一种选择是首选。
推荐阅读
- php - 无法将多个值写回 ACF 用户字段(PHP.Wordpress)
- php - 在 Laravel 中通过 ajax 请求过滤数据
- node.js - 如何在 Intellij 中运行使用 npm 的 gradle 任务
- python - 如何在 Lambda 中阅读或解释 Lambda
- apache-kafka - zookeper 如何与 kafka 交谈以知道 kafka 已启动
- json - 抓取 - 使用 python 捕获 json 响应
- ios - Swift - ContactStore 错误无法连接到服务 com.apple.contactsd
- android - 在其他机器上运行应用程序时出现 Firebase 错误
- php - 我的 api 不起作用,它没有显示异常
- linux - 网站使用 Let's Encrypt 的哪个证书用于 HTTPS?