2015-02-14 5 views
1

Это выглядит очень простой, но имеет меня в тупик, у меня есть функция, как это:Как запрашивать и использовать moonscript функции

print_stuff = (name) -> name 

определены в папке pale_moonlight так что здесь: pale_moonlight/function.moon. Когда я пытаюсь называть это так:

> f = require 'pale_moonlight.function' 
> f.print_stuff 'lolo' 

Я получаю ошибку ниже:

[string "tmp"]:1: attempt to index global 'f' (a boolean value) 

Что такое правильный способ сделать это? Моя версия moonscript: 0.2.6, lua версия: 5.2.3

+0

http://moonscript.org/reference/api.html – hjpotter92

+1

Вы не возвращаете значение из своего модуля 'pale_moonlight.function', поэтому' require' возвращает 'true' для вас. Просто поставьте 'print_stuff' в качестве последней строки своего модуля, чтобы вернуть свою функцию. – siffiejoe

+0

Спасибо @siffiejoe, который работает! –

ответ

3

Последняя строка вашего файла должна быть { :print_stuff }. Это MoonScript для: return { print_stuff = print_stuff } и позволяет получить доступ к функции через таблицу, которая будет возвращена require.