第一个 Lua 程序
Lua 提供交互式编程模式。在这个模式下,你可以一条一条地输入命令,然后立即就可以得到结果。你可以在 shell 中使用 lua -i 或者 lua 命令启动。输入命令后,按下回车键,就启动了交互模式,显示如下:
$ lua -i $ Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio quit to end; cd, dir and edit also available
你可以使用如下命令打印输出:
$> print("test")
按下回车键后,你会得到如下输出结果:
'test'
默认模式编辑
使用 Lua 文件做为解释器的参数启动解释器,然后开始执行文件直到文件结束。当脚本执行结束后,解释器就不在活跃了。
让我们写一个简单的 Lua 程序。所有的 Lua 文件都扩展名都是.lua
。因此,将下面的源代码放到 test.lua 文件中。
print("test")
假如你已经设置好 Lua 程序的环境,用下面的命令运行程序:
$ lua test.lua
我们会得到如下的输出结果:
test
让我们尝试使用另外的方式运行 Lua 程序。下面是修改后的 test.lua 文件:
\#!/usr/local/bin/lua print("test")
这里,我们假设你的 Lua 解释器程序在 /usr/local/bin/lua 目录下。test.lua 文件中第一行由于以 # 开始而被解释器忽略,运行这个程序可以得到如下的结果:
$ chmod a+rx test.lua $./test.lua
我们会得到如下的的输出结果:
test
接下来让我们看一下 Lua 程序的基本结构。这样,你可以更容易理解 Lua 编程语言的基本结构单元。
Lua 中的符号
Lua 程序是由大量的符号组成的。这些符号可以分为关键字、标识符、常量、字符串常量几类。例如,下面的 Lua 语句中包含三个符号:
io.write("Hello world, from ",_VERSION,"!\n")
这三个符号分别是:
io.write ( "Hello world, from ",_VERSION,"!\n" )
注释
注释就是 Lua 程序中的帮助文档,Lua 解释器会自动忽略它们。所有注释都以 --[[ 开始,并以 --]]结束。如下所示:
--[[ my first program in Lua --]]
标识符
Lua 中标识符是识别变量、函数或者其它用户自定义项的名字。标符识总是以字母或者下划线开始,其后可以是零个或多个字母、下划线或数字。
Lua 标识符中不允许出现任何标点符号,比如,@,$ 或者 %。Lua 是大小写敏感的语言,因此 Manpower 和 manpower 是 Lua 中两个不同的标识符。下面所列的是一些合法标识符的例子。
mohd zara abc move_name a_123 myname50 _temp j a23b9 retVal
关键字
下面列表中所示的是 Lua 中一小部分保留字。这些保留字不能用作常量、变量以及任何标识符的名字。
and | break | do | else |
elseif | end | false | for |
function | if | in | local |
nil | not | or | repeat |
return | then | true | until |
while |
Lua 中的空白符
如果 Lua 程序中某一行只包含空格或者注释,那么这样的一行被称之为空行。 Lua 解释器将完全忽略这一行。
在 Lua 中,空白是用来描述空格、制表符、换行符和注释的术语。空白符用于将语句中的一部分与其它部分区分开,使得解释器可以语句中的一个元素,比如 int,何处结束,以及另一个元素从何处开始。因此,在下面的语句中:
local age
在 local 与 age 之间至少有一个空白符(通常是空格),这个空白符使得解释器可以将 local 与 age 区分开。另一方面,在下面的语句中:
fruit = apples + oranges --get the total fruit
fruit 与 = 之间以及 = 与 apples 之间的空白符都是可以没有的。但是为了程序的可读性目的,建议你在它们之间使用空白符。