lua - хотите вызвать функцию из main.lua из другого модуля - PullRequest
2 голосов
/ 18 июня 2011

Я хочу вызвать функцию, определенную в main.lua, из модуля, который требуется (включен) в main.lua.Какой лучший / самый чистый способ сделать это?

Редактировать:

Я в конечном итоге пошел по маршруту отправки события.Кажется, это отличный способ сделать это.

Ответы [ 3 ]

1 голос
/ 19 июня 2011

Насколько я вижу, есть два варианта:

  1. Сначала определите функцию A, затем require() модуль и вызовите функцию A.
  2. require() сначала модуль, и пусть модуль определит функцию B, которая вызывает функцию A в вашем основном файле.Вызывайте функцию B всякий раз, когда вы готовы вызвать ее (т. Е. Функция A определена) в вашем главном файле.

Последний кажется более чистым, но это было бы вопросом личных предпочтений.

1 голос
/ 19 июня 2011

Переместите эту функцию в отдельный модуль. Это самый чистый способ.

В противном случае используйте глобальную переменную для хранения этой функции.

1 голос
/ 19 июня 2011

Сделать его доступным в глобальной таблице. Например:

--main.lua
require "myModule"

myModule.someFunc()

function mainFunc(...)
    --...
end

--myModule.lua
module(myModule)

mainFunc(parameters)

Пока модуль не определяет одно и то же имя переменной локально (и если это так, вы можете использовать _G.mainFunc, чтобы получить его), у вас все будет в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...