教程示例

lua-users home
wiki

Lua 命令行

如果我们不带参数运行 Lua 可执行文件,我们会看到如下消息和一个 > 命令提示符。

Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
>

教程中的所有示例都是在 > 命令提示符下输入的,然后将输出复制粘贴到 wiki 中。

> print("hello Lua user")
hello Lua user
> print(10*10)
100

如果一行以 = 开头,Lua 会将该行求值作为一个表达式。这是 print() 函数的简写。请注意,这只是交互式提示符的一个特性,在实际的 Lua 脚本文件中以 = 开头的语句将是语法错误。

> = "hello Lua user"
hello Lua user
> = 10*10
100

多行输入

如果需要,我们可以跨越多行输入命令。Lua 会尝试对您在给定行上输入的内容进行求值,并评估命令是否完整。如果命令不被认为完整,会出现一个双命令提示符 >>,以便您可以继续输入。例如:

> print(
>>  "Hello lua user"
>> )
Hello lua user
在上例中,print( 语句不完整,因为它缺少匹配的闭括号。Lua 命令行假定您还有更多内容要输入,因此会显示 >> 提示符。此过程将一直持续到语句被认为完整为止。如果您犯了错误,您将收到一个错误。这同样适用于求值简写。
> = 10 *
>> 10 +
>> 5
105

运行 Lua 脚本文件

如果您有一个包含大量代码的长程序,您不必每次都在 Lua 命令提示符下重新输入所有行。然后,只需在编辑器中保存您的 Lua 脚本文件,然后用程序文件名启动 Lua(而不是不带参数启动 Lua)。例如:如果您想启动 my-lua-script.lua,您需要在 Shell 中键入 "lua my-lua-script.lua"(不带引号),而不是在 Lua 命令提示符中。此功能对于本教程不是必需的,但如果您想编写自己的程序,它会很有用。

评论

在您看到 "--" 后跟文本的地方,这是注释。Lua 编译器会忽略该行中 -- 之后的所有内容。

> = 1+1  -- this is ignored.
2
> = 1+1     no comment
stdin:1: <eof> expected near `no'

注意:这是一个良好的行为习惯,但您不必输入注释!它们只是关于正在发生的事情的注释,以提高清晰度,特别是对于其他维护者(如果存在)的理解。

范围

(如果您还不理解变量作用域或 local 关键字,您可以跳过此部分,继续按照教程进行)

在交互式解释器中,每个命令行的作用域都是独立的,因此 local 变量将不会像您期望的那样工作。

> local x = 5
> = x
nil

因此,您需要在交互式解释器中使用全局变量来保留您想在其他行中使用的值。


RecentChanges · preferences
编辑 · 历史记录
最后编辑于 2013 年 8 月 9 日上午 5:13 GMT (差异)