我有一个类似于这样的moon脚本代码:
hello = (name) ->
print "Hello #{name}!"
我想在我的lua代码中使用moonscript.loadfile
我该怎么做这样的事?
MoonScript代码编译为Lua,因此您编写的函数在执行时实际上是Lua函数。
有几种方法可以在Lua:中访问它
- 使用
moonc
命令行工具提前编译文件。这将为您提供一个.lua
文件,您可以像加载任何其他Lua文件一样加载该文件 - 使用MoonScript加载程序函数之一加载文件。
moonscript.loadfile
是一个较低级别的函数,除非您特别需要,否则我不建议使用它。最简单的方法是在程序中调用require "moonscript"
,然后Lua的require
函数可以直接加载MoonScript文件。有关编译器API参考页的详细信息
请记住,如果您在另一个文件中有函数,则需要将它们作为模块的一部分导出。您可以通过为模块设置一个返回值来完成此操作。典型的模式是返回一个表,该表包含您想要使用的所有函数。在MoonScript中,文件中的最后一行会自动转换为return语句。分配并不是强制返回的,所以我建议你这样构建你的模块:
hello = (name) ->
print "Hello #{name}!"
{:hello}