如何在Lua中传递和接收另一个Lua的值?

gad*_*dss 3 lua coronasdk

我如何从一个值传递a.luab.lua

让我们说在我的a.luai中有这个变量代码.

local value = "Hello WOrld!"
director:changeScene ("b")
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何我通过valuea.luab.lua

提前致谢....

Spl*_*iFF 9

当你声明一些本地的东西时,你明确告诉Lua不要在脚本之间共享它.只需创建一个非局部变量:

value = "Hello World"
Run Code Online (Sandbox Code Playgroud)

在b.lua文件中只需要a.lua文件并使用它,例如在b.lua文件中

local a_File  = require "a"
print(a_File.value)
Run Code Online (Sandbox Code Playgroud)

您将获得输出

"Hello World"
Run Code Online (Sandbox Code Playgroud)

  • 为了实现这个目的,你需要在`a.lua`文件的顶部做`module('a')`,或者更好的是,最后`return {value ="Hello World"}`以避免使用`模块`(因为它[鼓励不良做法](http://lua-users.org/wiki/LuaModuleFunctionCritiqued);它在Lua 5.2中删除了. (2认同)

Ell*_*lle 5

将该值分配给全局表(_G),如下所示:

_G.value = "Hello WOrld"
Run Code Online (Sandbox Code Playgroud)

在另一个脚本中,您可以执行以下操作:

value = _G.value
Run Code Online (Sandbox Code Playgroud)

  • 如果没有其他值,`value = _G.value`不会执行任何操作 (2认同)
  • 请参阅SpliFF的答案。答案中的“ _G”在第一行中是完全多余的,而第二行则很奇怪:“ value”和“ _G.value`”是“同一件事”,因此您要编写“ value = value”或_G.value = _G.value`或__G [“ value”] = _G [“ value”]`。 (2认同)