Рекомендуемый способ, чтобы 2+ модуля рекурсивно ссылались друг на друга в Lua 5.2

Есть ли способ иметь

  • два модуля Lua (назовем их A и B )
  • Каждый модуль использует функции другого, поэтому они должны требовать друг друга
  • Третий модуль (назовем его C ) может использовать A , но не B , например

C.lua :

local A = require 'A'

-- ...

A.foo()
  • Может быть другой модуль D , для которого требуется B , но не A и / или E , требующие как A , так и B
  • Ни A , ни B , ни их члены не должны добавляться в глобальное пространство имен.
  • Избегайте использования модуля и функций setfenv (устарело в Lua 5.2)

Связанные : Lua - как использовать одну библиотеку из другой? (примечание: это решение не обрабатывает циклические зависимости.)

6
задан Community 23 May 2017 в 11:48
поделиться