我有一个像这样的月球脚本代码:
hello = (name) ->
print "Hello #{name}!"
我想使用moonscript.loadfile
我该怎么办?
答案 0 :(得分:1)
MoonScript代码编译为Lua,因此您编写的函数在执行时实际上是一个Lua函数。
在Lua中有几种方法可以访问它:
moonc
命令行工具提前编译文件。这将为您提供一个.lua
文件,您可以像加载任何其他Lua文件一样加载该文件。moonscript.loadfile
是一个较低级别的功能,除非您特别需要,否则我不建议使用它。最简单的方法是在程序中调用require "moonscript"
,然后增加Lua的require
函数以便能够直接加载MoonScript文件。有关Compiler API reference page。请记住,如果您在另一个文件中有功能,则需要将它们作为模块的一部分导出。您可以通过为模块返回值来完成此操作。通常的模式是返回一个包含您想要使用的所有函数的表。在MoonScript中,文件中的最后一行自动转换为return语句。虽然分配没有强制转换回来,所以我建议像这样构建你的模块:
hello = (name) ->
print "Hello #{name}!"
{:hello}