LUA教程语法约定-4

下面的关键字是保留的,不能用作名字:

     and       break     do        else      elseif
     end       false     for       function  if
     in        local     nil       not       or
     repeat    return    then      true      until     while

Lua 是一个大小写敏感的语言: and 是一个保留字,但是 And 和 AND 则是两个不同的合法的名字。一般约定,以下划线开头连接一串大写字母的名字(比如 _VERSION)被保留用于 Lua 内部全局变量。
下面这些是其它的 token :

     +     -     *     /     %     ^     #
     ==    ~=    <=    >=    <     >     =
     (     )     {     }     [     ]
     ;     :     ,     .     ..    ...

字符串既可以用一对单引号引起,也可以是双引号,里面还可以包含类似 C 的转义符:

  1.  '\a' (响铃), '\b' (退格), '\f' (表单), '\n' (换行),
  2.  '\r' (回车), '\t' (横向制表), '\v' (纵向制表), '\\' (反斜杠),
  3.  '\"' (双引号),以及 '\'' (单引号)。

而且,如果在一个反斜杠后跟了一个真正的换行符,其结果就是在字符串中产生一个换行符。我们还可以用反斜杠加数字的形式 \ddd 来描述一个字符。这里, ddd 是一串最多三位的十进制数字。(注意,如果需要在这种描述方法后接一个是数字的字符,那么反斜杠后必须写满三个数字。)Lua 中的字符串可以包含任何 8 位的值。包括用 '\0' 表示的零。

只有在你需要把不同的引号、换行、反斜杠、或是零结束符这些字符置入字符串时,你才必须使用转义符。别的任何字符都可以直接写在文本里。(一些控制符可以会影响文件系统造成某些问题,但是不会引起 Lua 的任何问题。)

字符串还可以用一种长括号括起来的方式定义。

我们把两个正的方括号间插入 n 个等号定义为第 n 级正长括号。就是说,0 级正的长括号写作 [[ ,一级正的长括号写作 [=[ ,如此等等。反的长扩展也作类似定义;举个例子,4 级反的长括号写作 ]====] 。

一个长字符串可以由任何一级的正的长括号开始,而由第一个碰到的同级反的长括号结束。整个词法分析过程将不受分行限制,不处理任何转意符,并且忽略掉任何不同级别的长括号。这种方式描述的字符串可以包含任何东西,当然特定级别的反长括号除外。

另一个约定是,当正的长括号后面立即跟了一个换行符,这个换行符就不包含在这个字符串内。

举个例子,假设一个系统使用 ASCII 码(这时,'a' 编码为 97 ,换行符编码为 10 ,'1' 编码为 49 ),下面五种方式描述了完全相同的字符串:

     a = 'alo\n123"'
     a = "alo\n123\""
     a = '\97lo\10\04923"'
     a = [[alo
     123"]]
     a = [==[
     alo
     123"]==]

数字常量可以分两部分写,十进制底数部分和十进制的指数部分。指数部分是可选的。 Lua 也支持十六进制整数常量,只需要在前面加上前缀 0x 。下面是一些合法的数字常量的例子:

     3   3.0   3.1416   314.16e-2   0.31416E1   0xff   0x56

注释可以在除字符串内的任何地方是以两横 (--) 开始。如果跟在两横后面的不是一个长括号,这就是一个短注释,它的作用范围直到行末;否则就是一个长注释,其作用范围直到遇到反的长括号。长注释通常被用来临时屏蔽代码块。
注释:单行注释:--

多行注释:--[[ --]]

--[[
 
print(10)         -- no action (comment)
 
--]]

发布日期:

所属分类: 编程 标签:


没有相关文章!