Lua 中用到的 名字(也称作 标识符)可以是任何非数字开头的字母、数字、下划线组成的字符串。 这符合几乎所有编程语言中关于名字的定义。 (字母的定义依赖于当前环境:系统环境中定义的字母表中的字母都可以被用于标识符。) 标识符用来命名变量,或作为表的域名。
下面的关键字是保留的,不能用作名字:
end false for function if
in local nil not or
repeat return then true until while
Lua 是一个大小写敏感的语言: and 是一个保留字,但是 And 和 AND 则是两个不同的合法的名字。 一般约定,以下划线开头连接一串大写字母的名字(比如 _VERSION)被保留用于 Lua 内部全局变量。
下面这些是其它的 token :
== ~= <= >= < > =
( ) { } [ ]
; : , . .. …
字符串既可以用一对单引号引起,也可以是双引号,里面还可以包含类似 C 的转义符: ‘/a' (响铃), ‘/b' (退格), ‘/f' (表单), ‘/n' (换行), ‘/r' (回车), ‘/t' (横向制表), ‘/v' (纵向制表), ‘//' (反斜杠), ‘/”‘ (双引号), 以及 ‘/” (单引号)。 而且,如果在一个反斜杠后跟了一个真正的换行符,其结果就是在字符串中产生一个换行符。 我们还可以用反斜杠加数字的形式 /ddd 来描述一个字符。这里, ddd 是一串最多三位的十进制数字。(注意,如果需要在这种描述方法后接一个是数字的字符, 那么反斜杠后必须写满三个数字。)Lua 中的字符串可以包含任何 8 位的值。包括用 ‘/0′ 表示的零。
只有在你需要把不同的引号、换行、反斜杠、或是零结束符这些字符置入字符串时, 你才必须使用转义符。别的任何字符都可以直接写在文本里。(一些控制符可以会影响文件系统造成某些问题, 但是不会引起 Lua 的任何问题。)
字符串还可以用一种长括号括起来的方式定义。 我们把两个正的方括号间插入 n 个等号定义为第 n 级正长括号。 就是说,0 级正的长括号写作 [[ , 一级正的长括号写作 [=[ ,如此等等。 反的长扩展也作类似定义; 举个例子,4 级反的长括号写作 ]====] 。 一个长字符串可以由任何一级的正的长括号开始,而由第一个碰到的同级反的长括号结束。 整个词法分析过程将不受分行限制,不处理任何转意符,并且忽略掉任何不同级别的长括号。 这种方式描述的字符串可以包含任何东西,当然特定级别的反长括号除外。
另一个约定是,当正的长括号后面立即跟了一个换行符, 这个换行符就不包含在这个字符串内。 举个例子,假设一个系统使用 ASCII 码 (这时,'a' 编码为 97 ,换行符编码为 10 ,'1′ 编码为 49 ), 下面五种方式描述了完全相同的字符串:
a = “alo/n123/”"
a = ‘/97lo/10/04923″‘
a = [[alo
123"]]
a = [==[
alo
123"]==]
新闻热点
疑难解答