Здравствуйте, гость ( Вход | Регистрация )

> Lua, объявить ф-цию в конце кода, вызвать в начале, Можно ли так?
фонарик
сообщение 15.7.2025, 15:45
Сообщение #1


****

Apprentice
Сообщений: 162
Регистрация: 23.11.2011
Группа: Пользователи
Наличность: 8
Пользователь №: 14.305



Здравствуйте. В интернетах начитался, что на луа можно определять функции где угодно в коде. Мне вот задумалось, что перенесу-ка я в конец кода все эти массы значений что запихиваются в массив. Чтобы сверху в коде сразу был чисто функционал и оперирование этими данными, а сами они чтобы в начале кода не мешались. Но чета никак у меня не получается так сделать. Подскажите пожалуйста, в чем проблема?

Код
--lua
-- Вызов функции в начале
myFunction()

-- Определение функции в конце
function myFunction()
    log("Hello, world!")
end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
DarkMaster
сообщение Вчера, 6:27
Сообщение #2


***********

Модератор UOPilot
Сообщений: 9.745
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29665
Пользователь №: 11.279



Цитата
В интернетах начитался, что на луа можно определять функции где угодно в коде.

Мне подобную ересь когда-то AI пытался втереть. Вы можете обращаться в коде только к тому, что объявлено выше текущей строки. В качестве альтернативы вы можете что-то объявить в шапке, а определить позднее:
Код

--lua
local a = nil

local my_print = function()
    log(a)
end

a = 123

my_print()

Дано исключительно в виде самого элементарного примера. Лично в моей практике чаще всего приходится подобным заниматься, когда необходимо чтобы две функции могли вызывать друг-друга при каких-то обстоятельствах. Чаще всего не напрямую, а через некоторый набор взовов других функций. А как это сделать, если для видимости каждая из них должна быть выше другой? Только аналогично примеру.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения



Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 17.7.2025, 4:52
Designed by Nickostyle