LUA参考手册

  • 格式:doc
  • 大小:315.00 KB
  • 文档页数:98

LTE初始随机接入过程详解

页脚内容1 Lua参考手册

Wikipedia,自由的百科全书

Lua 5.0 参考手册

作者: Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes

Copyright © 2003 Tecgraf, PUC-Rio. All rights reserved.

主要译者、维护人员:曹力丁舜佳 [NirvanaStudio ()]

目录 [隐藏]

1 1 - 绪论

2 2 - 语言

2.1 2.1 - 词法约定

2.2 2.2 - 值和类型

2.2.1 2.2.1 - 类型转换

2.3 2.3 - 变量

2.4 2.4 - 语句

2.4.1 2.4.1 - 语句段

2.4.2 2.4.2 - 语句块

2.4.3 2.4.3 - 赋值

2.4.4 2.4.4 - 控制结构

2.4.5 2.4.5 - For 语句

2.4.6 2.4.6 - 语句式函数调用 LTE初始随机接入过程详解

页脚内容2 2.4.7 2.4.7 - 局部变量声明

2.5 2.5 - 表达式

2.5.1 2.5.1 - 算术运算符

2.5.2 2.5.2 - 关系运算符

2.5.3 2.5.3 - 逻辑运算符

2.5.4 2.5.4 - 串联接

2.5.5 2.5.5 - 优先级

2.5.6 2.5.6 - 表构造器

2.5.7 2.5.7 - 函数调用

2.5.8 2.5.8 - 函数定义

2.6 2.6 - 可见性规则

2.7 2.7 - 错误处理

2.8 2.8 - 元表

2.9 2.9 - 垃圾收集

2.9.1 2.9.1 - 垃圾收集元方法

2.9.2 2.9.2 - 弱表

2.10 2.10 - 同步程序

3 3 - 应用程序接口

3.1 3.2 - 堆栈和索引

3.2 3.3 - 堆栈操作 LTE初始随机接入过程详解

页脚内容3 3.3 3.4 - 堆栈查询

3.4 3.5 - 堆栈取值

3.5 3.6 - 将值压入堆栈

3.6 3.7 - 控制垃圾收集

3.7 3.8 - 用户数据类型

3.8 3.9 - 元表

3.9 3.10 - 加载Lua语句段

3.10 3.11 - 表操作

3.11 3.13 - 将表作为数组使用

3.12 3.14 - 调用函数

3.13 3.15 - 受保护调用

3.14 3.16 - 定义C 函数

3.15 3.17 - 定义C 函数闭包

3.16 3.18 - 注册表

3.17 3.19 - C 中的错误处理

3.18 3.20 - 线程

4 4 - 调试接口

4.1 4.1 - 堆栈及函数信息

4.2 4.2 - 操作局部变量和上值

4.3 4.3 - 钩子 LTE初始随机接入过程详解

页脚内容4 5 5 - 标准库

5.1 5.1 - 基本函数

5.2 5.2 - Coroutine Mani***tion

5.3 5.3 - String Mani***tion

5.3.1 string.byte (s [, i])

5.3.2 string.char (i1, i2, ...)

5.3.3 string.dump (function)

5.3.4 string.find (s, pattern [, init [, plain]])

5.3.5 string.len (s)

5.3.6 string.lower (s)

5.3.7 string.rep (s, n)

5.3.8 string.sub (s, i [, j])

5.3.9 string.upper (s)

5.4 5.4 - Table Mani***tion

5.5 5.5 - Mathematical Functions

5.6 5.6 - Input and Output Facilities

5.7 5.7 - Operating System Facilities

5.8 5.8 - The Reflexive Debug Interface

6 6 - Lua 独立程序

7 致谢 LTE初始随机接入过程详解

页脚内容5 8

与以前版本的不兼容性

8.1 语言上的变动

8.2 库的变更

8.3 API 上的改动

9 Lua 完整语法参考

1 - 绪论

Lua是一种为支持有数据描述机制的一般过程式编程语言而设计的扩展编程语言。它同样可以对面向对象语言、函数式程序设计(Functional

Programming,如Lisp)以及数据驱动编程(data-driven programming)提供很好的支持。它的目标是被用作一种强大的、轻型的配置语言。Lua目前已经被实现为一个扩展库,是用clean C (ANSI C/C++的一个通用子集)编写的。

作为一个扩展语言,Lua没有"Main"函数的概念:它仅仅是嵌入一个宿主程序进行工作,可以称之为嵌入式编程 或者简单的说是宿主编程。这个宿主程序可以调用函数来执行Lua的代码片断,可以设置和读取Lua的变量,可以注册C函数让Lua代码调用。Lua的能力可以扩展到更大范围,在不同的领域内,这样就在同样的语法框架下创建了你自定义的编程语言。

Lua的发行版包括一个独立的嵌入式程序,lua,他使用Lua的扩展库来提供一个完全的Lua解释器。

Lua是自由软件,通常不提供任何担保,如它的版权说明中叙述的那样。手册中描述的实现在Lua的官方网站可以找到,。

如果需要知道Lua设计背后的一些决定和讨论,可以参考以下论文,它们都可以在Lua的网站上找到。

R. Ierusalimschy, L. H. de Figueiredo, and W. Celes. Lua---an extensible extension language. Software: Practice & Experience 26 #6 (1996) 635-652.

L. H. de Figueiredo, R. Ierusalimschy, and W. Celes. The design and implementation of

a language for extending applications. Proceedings of XXI Brazilian Seminar on Software and Hardware (1994) 273-283. LTE初始随机接入过程详解

页脚内容6

L.

H. de Figueiredo, R. Ierusalimschy, and W. Celes. Lua: an extensible embedded language. Dr. Dobb's Journal 21 #12 (Dec 1996) 26-33.

R. Ierusalimschy, L. H. de Figueiredo, and W. Celes. The evolution of an extension language: a history of Lua, Proceedings of V Brazilian Symposium on Programming Languages

(2001) B-14-B-28.

Lua在葡萄牙语中的意思是“月亮”,发音是 LOO-ah。

2 - 语言

这一章将描述Lua的词法、语法和语义结构。换句话说,这一章会讲什么标记是合法的,他们是如何组合的,以及他们的组合是什么含义。

语言结构会使用常用的扩展BNF范式来解释,如{a} 表示0或多个a, 表示a是可选的(0个或1个)。非终端字体(不能显示的)用斜体表示,关键字是粗体,其他终端符号用typewriter(等宽)字体,并用单引号引出。

2.1 - 词法约定

Lua中的标识符(Identifiers)可以是任意的数字、字符和下划线“_”,但不能以数字开头。这条规则符合大多数编程语言中的标识符的定义。(字符的具体定义要根据系统的地区设置:任何区域设置可以认同的字母表中的字母都可以用在标识符中。)

下面的关键字(keywords)为保留关键字不可以作为标识符出现:

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内部变量所保留的。 LTE初始随机接入过程详解

页脚内容7 下面的字符(串)是其他的一些标记:

+ - * / ^ =

~= <= >= <

> ==

( ) { }

[ ]

; : , . .. ...

字符串(Literal

strings) 以单引号或者双引号定界,同时可以包含以下C语言风格的转义字符:

\a --- 铃声(bell)

\b --- 回退(backspace)

\f --- form feed

\n --- 新行(newline)

\r --- 回车(carriage return)

\t --- 水平制表符(horizontal tab)

\v --- 垂直制表符(vertical tab)

\\ --- 反斜杠(backslash)

\" --- 双引号(quotation mark)

\' --- 单引号(apostrophe)

\[ --- 左方括号(left square bracket)

\] --- 右方括号(right square bracket)

另外,一个 `\newline´ (一个反斜杠加上一个真正的换行符)会导致字符串内的分行。字符串中的字符也可以使用转义字符`\ddd´通过数字值来指定。ddd 是最多为3个十进制数字的序列。Lua中的字符串也可以包含8进制数字,包括嵌入零,它可以表示为 `\0´。