目录

Lua初探-基本语法-词汇约定


Lexical Conventions 词汇约定
  • Lua是一个自由形式的语言。除了作为名词和关键字之间的空格外,它忽略了空格符(包括新的行)和两个词汇元素之前的注释。

  • 使用标识去命名变量,表字段和表, Lua中的命名(也叫作标识)可以是任意简短的字符,数字和下划线,不能是一个数组开头的,也不能是一个保留字。

  • 一下是不能作为名字使用的保留关键字:

    • and
    • break
    • do
    • else
    • elseif
    • end
    • false
    • for
    • function
    • goto
    • if
    • in
    • local
    • nil
    • not
    • or
    • repeat
    • return
    • then
    • true
    • until
    • while
  • Lua 是一个大小写敏感的语言:and 是一个保留字,但And 和AND是两个不同的可用的名称。作为约定,代码应该尽可能使用 下划线开头并跟随一个或者更多大写字

  • 一下字符串标识其他标识:

    • /
    • %
    • ^
    • &
    • ~
    • |
    • «
    • >>
    • //
    • ==
    • ~=
    • <=
    • >=
    • <
    • =
    • (
    • )
    • {
    • }
    • [
    • ]
    • ::
    • .
    • ..
  • 短文字字符串可以通过匹配单引号或双引号来分隔,并且可以包含以下类似C的转义序列:’\ a’(钟形),’\ b’(退格),’\ f’(换页), ‘\ n’(换行符),’\ r’(回车),’\ t’(水平制表符),’\ v’(垂直制表符),’\’(反斜杠),’\“’(引号) [双引号])和’'’(撇号[单引号])。反斜杠后跟一个换行符会在字符串中产生换行符。转义序列’\ z’会跳过以下白色空格字符范围 ,包括换行符;将长文本字符串拆分并缩进为多行而不将新行和空格添加到字符串内容中特别有用。短文字字符串不能包含未转义的换行符,也不能转义为不形成有效的转义序列

  • 我们可以通过数值(包括内嵌的0)在一个简短字符串中获取指定的byte值。这可以通过转义字符串完成\xXX,XX是两个明确的十六进制的序列。或者使用转义序列\ddd,ddd是三个十进制的序列。

  • 可以将Unicode字符的UTF-8编码的字符用带有转义序列\ u {XXX}的文字字符串中(请注意必需的括号括起)代替,其中XXX是表示字符代码点的一个或多个十六进制数字的序列。

  • 也可以使用长括号括起来的长格式来定义文字字符串。 我们将n级的开口长支架定义为开口方括号,后跟n个等号后跟另一个开口方括号。 因此,0级的开头长括号写为[[,1级的开头长括号写为[= [,依此类推。 结束长括号的定义相似; 例如,级别4的结束长括号写为] ====]。 长文字以任何级别的开口长括号开始,并在同一级别的第一个关闭长括号结束。 它可以包含除同一级别的右括号之外的任何文本。 这种括号中的文字可以运行多行,不解释任何转义序列,并忽略任何其他级别的长括号。 任何类型的行结束序列(回车符,换行符,回车后跟换行符,换行符后换行符)都会转换为简单的换行符。