Всем привет, пытаюсь разобраться с использованием модулей, но я что-то не понимаю что не так сделал.
main.lua
local max_module = require "max"
print("hello")
print(max_module.max(0,3))
max.lua
local max_module = {}
local function max(num1, num2)
if (num1 > num2) then
result = num1;
else
result = num2
end
return result;
end
Карочи, есть одна устаревшая функция module(package.loaded, ...) которая используется примерно так:
*max.lua*
module(package.loaded, ...)
-- всё глобально объявленное внутри max.lua
-- будет отправлено в таблицу
-- которая будет создана для этого модуля
function FOO(a, b) return a + b end
function BAR(a, b) return a - b end
*main.lua*
require'max' -- оно сделает глобальную таблицу max
a = max.FOO(10, 20) -- 30
b = max.BAR(40, 30) -- 10
Но это не наш вариант, данная модель устарела с Lua 4.
Сейчас, луа выполняет код скрипта на require просто как функцию. Считай что его текст это просто функция, с телом этого текста. Если функция что-то возвращает, например табличку модуля, то тебе нужен return.
function max()
local max_module = {}
function max_module.max(num1, num2)
if (num1 > num2) then
result = num1;
else
result = num2
end
return result;
end
return max_module
end
==
*max.lua*
local max_module = {}
function max_module.max(num1, num2)
if (num1 > num2) then
result = num1;
else
result = num2
end
return result;
end
return max_module