如何从lua中的moonscript调用函数?

时间:2017-01-15 17:52:18

标签: lua moonscript lua-loadfile

我有一个像这样的月球脚本代码:

hello = (name) ->
  print "Hello #{name}!"

我想使用moonscript.loadfile

在我的lua代码中使用它

我该怎么办?

1 个答案:

答案 0 :(得分:1)

MoonScript代码编译为Lua,因此您编写的函数在执行时实际上是一个Lua函数。

在Lua中有几种方法可以访问它:

  • 使用moonc命令行工具提前编译文件。这将为您提供一个.lua文件,您可以像加载任何其他Lua文件一样加载该文件。
  • 使用MoonScript加载程序功能之一加载文件。 moonscript.loadfile是一个较低级别的功能,除非您特别需要,否则我不建议使用它。最简单的方法是在程序中调用require "moonscript",然后增加Lua的require函数以便能够直接加载MoonScript文件。有关Compiler API reference page
  • 的更多信息

请记住,如果您在另一个文件中有功能,则需要将它们作为模块的一部分导出。您可以通过为模块返回值来完成此操作。通常的模式是返回一个包含您想要使用的所有函数的表。在MoonScript中,文件中的最后一行自动转换为return语句。虽然分配没有强制转换回来,所以我建议像这样构建你的模块:

hello = (name) ->
  print "Hello #{name}!"

{:hello}