教程示例

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 x = 5
> = x
nil

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


最近更改 · 偏好设置
编辑 · 历史记录
最后编辑于 2013 年 8 月 9 日上午 11:13 GMT (差异)