Перейти к содержимому
  • 0
Zucker

[OC] Запуск функции из другого файла

Вопрос

Буду очень рад если найду решение тут, потому-что даже некуда идти.

Вопрос:

Как запустьить функцию из программы 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 примерно по этой системе производят действия, но видать из моей программы они это делают иначе. Кто может помочь?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

Чтобы работало require("hello"), hello.lua должна быть оформлена как библиотека, а именно:

local hello={}

function hello.set()
-- бла-бла-бла
end

return hello

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А как должно быть в "world"?

hello=require("hello")
hello.set()

или так:

require("hello").set() 

Только, если поменялся текст файла hello.lua, необходимо перегрузить компьютер (ОС-компьютер, не реальный) ибо ранее загружавшаяся библиотека второй раз не загружается, а берется из ОЗУ.

Изменено пользователем Zer0Galaxy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
hello=require("hello")
hello.set()

Только, если поменялся текст файла hello.lua, необходимо перегрузить компьютер (ОС-компьютер, не реальный) ибо ранее загружавшаяся библиотека второй раз не загружается, а берется из ОЗУ.

 

Спасибо, Отличный ответ! Очень быстро и точно.

Изменено пользователем Pavel52

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

возвращает true,потому что в конце библиотеки return hello нужно написать.функция require ищет файл hello.lua, загружает код, и исполняет как функцию, и возвращает то что функция передала, или true если нету возврата.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...