如何从另一个Lua文件中传递变量?

6
如何从另一个Lua文件传递变量?我正在尝试将文本变量title作为文本传递给另一个b.lua。
a.lua
local options = {
    title = "Easy - Addition", 
    backScene = "scenes.operationMenu", 
}

b.lua

   local score_label_2 = display.newText({parent=uiGroup, text=title, font=native.systemFontBold, fontSize=128, align="center"})
2个回答

4

有几种方法可以做到这一点,但最简单的方法是将'a.lua'视为一个模块,并通过require将其导入到'b.lua'中。

例如,在

-- a.lua
local options =
{
  title = "Easy - Addition",
  backScene = "scenes.operationMenu",
}

return options

并且从

-- b.lua
local options = require 'a'
local score_label_2 = display.newText
  {
    parent = uiGroup,
    text = options.title,
    font = native.systemFontBold,
    fontSize = 128,
    align = "center"
  }    

谢谢,如果我将多个Lua文件分配给一个变量,这也是可能的吗?例如:local options = require 'a','c','d'? - Kilik Sky
那可能没有太多意义。require 'a' 返回的是 'a.lua' 返回的任何内容 - 在这种情况下,是 'a.lua' 中的本地 options。只需为每个 require 使用不同的变量名称即可。 - greatwolf

-1

您可以将文件a.lua导入变量,然后将其用作普通表。

b.lua

local a = require("a.lua")
print(a.options.title)

2
请使用[编辑]链接来解释这段代码的工作原理,而不仅仅是提供代码,因为解释更有可能帮助未来的读者。另请参见[答案]。来源 - Jed Fox
好的,对不起我的错。谢谢您的帮助,但是如果我将多个Lua文件分配给一个变量,是否也可能?例如:local a = require(“a.lua”,“b.lua”) - Kilik Sky
为了分配多个lua文件,您可能需要重新定义“require”关键字以支持任意数量的参数,例如:https://dev59.com/nWox5IYBdhLWcg3wi0vF,然后您所要做的就是合并表格,例如:https://dev59.com/A3M_5IYBdhLWcg3wp1Cl。 - Burns
一个.lua文件的主体没有返回任何内容,所以在执行local a = require("a.lua")之后,a将会是nil - Tom Blodget

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