Size: a a a

2020 January 09

S

Snusmumriken in pro.lua
Ещё можно реквайрнуть в main, а потом реквайрнуть second и передать туда функцией типа setEnums(enum_tbl)
источник

D

DaySandBox in pro.lua
Message from Roman Silin deleted. Reason: new user and external link (?)
источник

S

Snusmumriken in pro.lua
Ой, ты пока слишком новичок, ссылки. Давай или разъединённые ссылки, или код пихай в тройных "`" для форматирования.
источник

RS

Roman Silin in pro.lua
ах.
источник

RS

Roman Silin in pro.lua
lua . org/pil/15.4.html
источник

D

Denis in pro.lua
источник

D

Denis in pro.lua
можно в боте посмотреть какая была ссылка)
источник

RS

Roman Silin in pro.lua
😄 Да, вот это и читаю. Как понял, главный минус нового контекста - потеря доступа ко всему что ты туда не перенесешь, вплоть до io и math
источник

S

Snusmumriken in pro.lua
Это немножко устаревшие и древние решения, несовместимые с >lua5.2, помнится.
источник

RS

Roman Silin in pro.lua
Даже так. Тогда пока setfenv выглядит еще менее элегантнее чем реквайры.
источник

S

Snusmumriken in pro.lua
Самый тупой модуль с шарингом без глобалов —

*second.lua*
local M = {}
local Shared

-- шарим, например, enum'ы
function M.setSharedInfo(s)
 Shared = s
end

return M

*main.lua*
local enums  = require'enums'
local second = require'second'

second.setSharedInfo(enums)
источник

RS

Roman Silin in pro.lua
Да, твою идею понял.
источник

RS

Roman Silin in pro.lua
С setSharedInfo выглядит громоще, наверное в каком-то случае оправдано. В моем видимо лучший вариант просто рекварить везде, как ты написал сначала.
источник

S

Snusmumriken in pro.lua
Но с тем же самым успехом можно зареквайрить в паре мест. Если тебе не нравится затея того, что папку с либой могут переименовать, и тебе придётся реквайрить модули по странным путям — имя модуля можно выяснить в ....

Ну там
*second.lua*
local name = ...
print(name)

*main.lua*
require("MyDir.path1.path2.second")
--> MyDir.path1.path2.second
источник

RS

Roman Silin in pro.lua
Ага, с этим уже успел разобраться.
источник

RS

Roman Silin in pro.lua
Даже так )
источник

S

Snusmumriken in pro.lua
Да, да
источник

RS

Roman Silin in pro.lua
Спасибо, подстроюсь тогда просто под один общий модуль с енамами и буду везде рекварить. Пошел дальше пилить.
источник

S

Snusmumriken in pro.lua
И сюда же можно тесты либ лепить:

local M = {}
...

-- если реквайрили - вернём модуль
if ... then return M end

-- время для тестов, скрипт был запущен самостоятельно


То есть как __name__ в питоне.
источник

ВБ

Валентин Бомбин in pro.lua
Roman Silin
Ага, с этим уже успел разобраться.
а что за стори и парсеры? ты игру пишешь?
источник