Лучше, чем просто набивать материал в глобальную таблицу, использовать модульную систему lua так, как она была предназначена для использования.
говорят, что у вас было два файла: a.lua и b.lua. b.lua нуждается в некоторой ценности от a.lua. это как бы вы выполнить это:
код a.lua:
module("a", package.seeall)
local myVal = "My value in file a"
local SomeVal = 15
function GetSomeValue()
return myVal
end
b.lua код:
require "a"
print(a.GetSomeValue()) -- prints 'My value in file a'
print(a.SomeVal) -- prints 15
print(SomeVal) -- prints nil, unless you've declared it in b.lua
это гораздо чище, чем просто начинку вещи в таблице _G. что произойдет, если у вас есть 3 или 4 разных сценария, и вы пытаетесь сохранить значения, которые следует называть одинаковыми, только в разных контекстах? быть в состоянии сказать:
a.Value
a.Function()
не только намного более ясно, где вы выборки данных, но гораздо чище, чем говорят
_G["Value"]
и в надежде, что это на самом деле значение вы надеетесь для. использование _G может быть проще, если вы работаете над простым случаем только с двумя файлами. но лучше изучить лучшие практики и использовать их на ранней стадии. использование _G было бы кошмаром, если бы у вас было несколько файлов, работающих совместно ...
'значение = _G.value' не делает ничего, если не предшествует что-то еще ответ –
знакомства косяк в , «_G» в вашем ответе совершенно лишний в первой строке, а вторая строка просто странная: 'значение' и' _G.value' - это то же самое *, поэтому вы пишете 'значение = значение' или '_G.value = _G.value' или' _G ["value"] = _G ["value"] '. – Mud
Честно говоря, я не коснулся Lua на некоторое время, и этот ответ является результатом быстрого Google. +1 к более правильным ответам. –