Вот немного упрощенного кода Lua, с которым я работаю. Мне нужно знать, как динамически вызывать другой модуль («зебра»):
avar = require "avar"
bvar = require "bvar"
function create(zebra)
print(zebra.new())
end
print(create(avar))
А вот и два модуля:
local Avar = {}
function Avar.new()
return "avar"
end
return Avar
local Bvar = {}
function Bvar.new()
return "new"
end
function Bvar.old()
return "old"
end
return Bvar
Если я попытаюсь передать строку «avar» моей функции «создать», это не сработает. Если я передам слово «авар» без кавычек, оно сработает, однако я не понимаю, что такое авар без кавычек? Кажется, это пустая таблица? Не уверен, как передать пустую таблицу в качестве аргумента в моей основной программе.
Но, может быть, я совершенно на неправильном пути. Как динамически вызывать модули?