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