如何在Mac OS终端上调用Lua函数?

我是新手Lua程序员,正在阅读一些教程,并尝试编写一些常见算法等基础内容。

但是在我使用Mac OS设备上的Lua解释器时遇到了一些问题。

例如,假设我们有一个名为“sample.lua”的文件,其中包含以下代码行:

function fib(n) return n<2 and n or fib(n-1)+fib(n-2) end

如何从终端运行该函数? 如果我不使用任何函数,我只需使用“lua script.lua”调用脚本即可 - 正常工作!

下一个问题涉及到对非编译和编译Lua源代码使用的基本理解。为什么像我以前提到的那样可以运行Lua代码而不编译它(lua script.lua)?或者这个语句是否会临时编译代码并运行?

谢谢

克里斯

原文链接 https://stackoverflow.com/questions/6947997

点赞
stackoverflow用户216292
stackoverflow用户216292

为了在终端运行该函数,你需要像下面这样操作:

lua -e"dofile'sample.lua' print(fib(3))"

这里的 -e 告诉 Lua 执行后面的字符串,该字符串会加载你的文件“sample.lua”,然后将 fib(3) 的结果打印到 stdout。

不过,我不知道你的第二个问题的答案。

2011-08-04 20:31:27
stackoverflow用户107090
stackoverflow用户107090

Lua 脚本在运行之前总是先编译成 Lua 虚拟机指令。预编译的脚本则可以跳过这一步骤。

Lua scripts are always compiled into Lua VM instructions before running. Precompiled scripts just skip this step.
2011-08-05 00:47:59
stackoverflow用户83497
stackoverflow用户83497

你可以在终端中使用 -i 标志来运行lua:

lua -i luascript.lua

这将执行脚本,然后将解释器置于交互模式。然后,你可以直接从交互提示符中调用该函数:

fib(3)
2011-08-08 17:08:47