Zucker 21 Опубликовано: 8 июля, 2015 Буду очень рад если найду решение тут, потому-что даже некуда идти. Вопрос: Как запустьить функцию из программы hello.lua в программе test? У меня есть косенькое решение и оно не правильно работает. ---- world---- local hello = require("hello"); hello.set() -- hello(), set() --------------- ----hello.lua---- function hello.set() print("Hello"); end; --или-- function set() print("Hello"); end; ------------------ При запуске программы "world" пишет: attemp to index local "hello" (a boolean value) Если прописать так: print(hello.set()); в итоге все тоже самое, но когда провисываю так: print(hello); он пишет: true. API примерно по этой системе производят действия, но видать из моей программы они это делают иначе. Кто может помочь? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 8 июля, 2015 Чтобы работало require("hello"), hello.lua должна быть оформлена как библиотека, а именно: local hello={} function hello.set() -- бла-бла-бла end return hello 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 8 июля, 2015 (изменено) А как должно быть в "world"? hello=require("hello") hello.set() или так: require("hello").set() Только, если поменялся текст файла hello.lua, необходимо перегрузить компьютер (ОС-компьютер, не реальный) ибо ранее загружавшаяся библиотека второй раз не загружается, а берется из ОЗУ. Изменено 8 июля, 2015 пользователем Zer0Galaxy 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zucker Автор вопроса 21 Опубликовано: 8 июля, 2015 (изменено) hello=require("hello") hello.set() Только, если поменялся текст файла hello.lua, необходимо перегрузить компьютер (ОС-компьютер, не реальный) ибо ранее загружавшаяся библиотека второй раз не загружается, а берется из ОЗУ. Спасибо, Отличный ответ! Очень быстро и точно. Изменено 8 июля, 2015 пользователем Pavel52 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 541 Опубликовано: 8 июля, 2015 возвращает true,потому что в конце библиотеки return hello нужно написать.функция require ищет файл hello.lua, загружает код, и исполняет как функцию, и возвращает то что функция передала, или true если нету возврата. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Буду очень рад если найду решение тут, потому-что даже некуда идти.
Вопрос:
Как запустьить функцию из программы hello.lua в программе test?
У меня есть косенькое решение и оно не правильно работает.
---- world----
local hello = require("hello");
hello.set() -- hello(), set()
---------------
----hello.lua----
function hello.set()
print("Hello");
end;
--или--
function set()
print("Hello");
end;
------------------
При запуске программы "world" пишет:
attemp to index local "hello" (a boolean value)
Если прописать так: print(hello.set()); в итоге все тоже самое, но когда провисываю так: print(hello); он пишет: true.
API примерно по этой системе производят действия, но видать из моей программы они это делают иначе. Кто может помочь?
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах