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