From cf3f690d1d583c752a526f2b8c44fdd22b46a2e0 Mon Sep 17 00:00:00 2001 From: koyoter Date: Mon, 19 Jan 2015 11:03:24 +0800 Subject: [PATCH 01/50] Update manual.html MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 确省改为缺省 --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 987f440..1d5ecb6 100644 --- a/manual.html +++ b/manual.html @@ -3652,7 +3652,7 @@

4.8 – 函数和类型

-Lua 中数字的类型。确省是 double ,但是你改成 float 。 +Lua 中数字的类型。缺省是 double ,但是你改成 float 。 (参见 luaconf.h 中的 LUA_REAL 。) From 4ef290136b671900792b90c60e7be790434bd37b Mon Sep 17 00:00:00 2001 From: Veinin Date: Mon, 19 Jan 2015 11:16:44 +0800 Subject: [PATCH 02/50] Update manual.html MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 语义调整 --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 987f440..b88f624 100644 --- a/manual.html +++ b/manual.html @@ -112,7 +112,7 @@

2.1 – 值与类型

Number 代表了整数或实数(浮点数)。 String 表示一个不可变的字节序列。 -Lua 是 8 位友好的: +Lua 对 8 位是友好的: 字符串可以包含任意 8 位值, 其中包括零 ('\0') 。 Lua 的字符串编码无关; From 791ec31d3855d2338814dae308a235fc443291a1 Mon Sep 17 00:00:00 2001 From: Veinin Date: Mon, 19 Jan 2015 11:36:26 +0800 Subject: [PATCH 03/50] Update term.html MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit “序列”出现重复。 --- term.html | 1 - 1 file changed, 1 deletion(-) diff --git a/term.html b/term.html index d923dfe..845ee81 100644 --- a/term.html +++ b/term.html @@ -45,7 +45,6 @@

字面串literal string 代码块chunk 标签label -序列sequence 实例化instantiated 上值upvalue From e559ad7b8ea4641d46031c2ad3ba723d6c573b49 Mon Sep 17 00:00:00 2001 From: Veinin Date: Mon, 19 Jan 2015 12:34:57 +0800 Subject: [PATCH 04/50] Update manual.html 2.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 对2.1节语言表达做出调整,使之读起来更加通顺。 --- manual.html | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/manual.html b/manual.html index b88f624..7894491 100644 --- a/manual.html +++ b/manual.html @@ -115,17 +115,16 @@

2.1 – 值与类型

Lua 对 8 位是友好的: 字符串可以包含任意 8 位值, 其中包括零 ('\0') 。 -Lua 的字符串编码无关; +Lua 的字符串与编码无关; 它不理会字符串里的内容到底是什么。

number 类型有两种内部呈现方式, -一种称为 整数 另一种称为 浮点数。 +一种称为 整数 ,另一种称为 浮点数。 对于使用哪种内部形式,Lua 有明确的规则, 但它也按需(参见 §3.4.3)自动转换。 -因此,程序员需要选择完全忽略其间的差异 -还是对如何在内部呈现数字做完全的控制。 +因此,程序员大多可以选择完全忽略整数与浮点数之间的差异或者假设完全的控制了每个数字是如何呈现的。 标准 Lua 使用 64 位整数以及双精度(64 位)浮点数, 但你可以把 Lua 编译成使用 32 位整数及单精度(32 位)浮点数。 以 32 位表示数字对小型机器以及嵌入式系统特别有意义。 @@ -133,27 +132,27 @@

2.1 – 值与类型

-Lua 可以调用(以及操作)用 Lua 或 C (参见 §3.4.10)编写的函数。 -这两种函数有统一的类型 function。 +Lua 可以调用(以及操作)Lua 或 C (参见 §3.4.10)编写的函数。 +这两种函数有统一类型的 function

userdata 类型允许将 C 中的数据保存在 Lua 变量中。 -用户数据类型的值是一个内存块。 -有两种用户数据: -完全用户数据 指一块由 Lua 管理的内存对应的对象; -轻量用户数据 则指一个简单的 C 指针。 +用户数据类型的值是一个内存块, +它有两种用户数据: +完全用户数据 ,指一块由 Lua 管理的内存对应的对象; +轻量用户数据 ,则指一个简单的 C 指针。 用户数据在 Lua 中没有预定义的操作,你只能对它进行赋值操作及判断两个用户数据是否相同。 使用 元表 的话,程序员可以给完全用户数据定义一系列的操作 (参见 §2.4)。 -在 Lua 代码中,你不能查和修改一个用户数据的值,这些工作只能通过 C API 完成。 +在 Lua 代码中,你不能查和修改一个用户数据的值,这些工作只能通过 C API 完成, 这保证了数据仅被宿主程序所控制。

thread 类型表示了一个独立的执行序列,它被用于实现协程 (参见 §2.6)。 -Lua 线程并非操作系统线程。 +Lua 线程与操作系统线程并不相关。 Lua 为所有的系统,包括那些不提供原生线程支持的系统,提供了协程支持。 @@ -163,24 +162,23 @@

2.1 – 值与类型

都可以做索引。 (Not a Number 是一个特殊的数字,它用于表示未定义或表示不了的运算结果,比如 0/0。) 表可以是 异构 的; -也就是说,表内可以包含(除 nil 外的任何类型的值)。 +也就是说,表内可以包含任何类型的值( nil 除外)。 任何键的值若为 nil 就不会被记入表结构内部。 换句话说,对于表内不存在的键,都对应着值 nil

-表是 Lua 中唯一的数据结构; +表是 Lua 中唯一的数据结构, 它可被用于表示普通数组、序列、符号表、集合、记录、图、树、等等。 -对于记录,Lua 使用域名作为索引。 +如何对数据记录,Lua 则使用了域名作为索引。 语言提供了 a.name 这样的语法糖来替代 a["name"] 这种写法以方便记录这种结构的使用。 -有多种方式在 Lua 中创建表结构(参见 §3.4.9)。 +在 Lua 中创建表结构有多种方式(参见 §3.4.9)。

-我们使用 序列 这个术语来表示一个用 {1..n} 的正整数集 -做索引的表。这里的非负整数 n 被称为这个序列的长度 -(参见 §3.4.7)。 +我们使用 序列 这个术语来表示一个用 {1..n} 的正整数集做索引的表。 +这里的非负整数 n 被称为这个序列的长度(参见 §3.4.7)。

@@ -196,9 +194,9 @@

2.1 – 值与类型

(即不通过元方法的比较), 表达式 a[i]a[j] 表示了表中相同的元素。 -特别指出:一个可以完全表达为整数的浮点数和对应的整数相等 +特别指出:一个可以完全表示为整数的浮点数和对应的整数相等 (例如:1.0 == 1)。 -为了消除歧义,当一个可以完全表达为整数的浮点数做为键值时, +为了消除歧义,当一个可以完全表示为整数的浮点数做为键值时, 都会被转换为对应的整数储存。 例如,当你写 a[2.0] = true 时, 实际被插入表中的键是整数 2 。 @@ -209,7 +207,7 @@

2.1 – 值与类型

表、函数、线程、以及完全用户数据在 Lua 中被称为 对象: 变量并不真的 持有 它们的值,而仅保存了对这些对象的 引用。 -赋值、参数传递、函数返回,都是针对引用而不是针对值的操作; +赋值、参数传递、函数返回,都是针对引用而不是针对值的操作, 这些操作均不会做任何形式的隐式拷贝。 From ecc61036009f4e66b4bb2562e0a93e52b80e47d2 Mon Sep 17 00:00:00 2001 From: Veinin Date: Mon, 19 Jan 2015 14:18:25 +0800 Subject: [PATCH 05/50] =?UTF-8?q?=E5=9B=9E=E9=80=80=E5=8E=9F=E6=96=87?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manual.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/manual.html b/manual.html index 7894491..c2a3fcb 100644 --- a/manual.html +++ b/manual.html @@ -132,8 +132,8 @@

2.1 – 值与类型

-Lua 可以调用(以及操作)Lua 或 C (参见 §3.4.10)编写的函数。 -这两种函数有统一类型的 function。 +Lua 可以调用(以及操作)用Lua 或 C (参见 §3.4.10)编写的函数。 +这两种函数有统一类型 function

@@ -170,7 +170,7 @@

2.1 – 值与类型

表是 Lua 中唯一的数据结构, 它可被用于表示普通数组、序列、符号表、集合、记录、图、树、等等。 -如何对数据记录,Lua 则使用了域名作为索引。 +对于记录,Lua 使用域名作为索引。 语言提供了 a.name 这样的语法糖来替代 a["name"] 这种写法以方便记录这种结构的使用。 在 Lua 中创建表结构有多种方式(参见 §3.4.9)。 From 305aafb3d5e754b56992b3ecc1e042cb75128383 Mon Sep 17 00:00:00 2001 From: Cloud Wu Date: Mon, 19 Jan 2015 16:07:41 +0800 Subject: [PATCH 06/50] fix typo --- manual.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manual.html b/manual.html index 29e8eb3..ac75492 100644 --- a/manual.html +++ b/manual.html @@ -1756,7 +1756,7 @@

3.4.3 – 强制转换

-从数字转换为字符串使用非制定的人可读的格式。 +从数字转换为字符串使用非指定的人可读的格式。 若想完全控制数字到字符串的转换过程, 可以使用字符串库中的 format 函数 (参见 string.format)。 @@ -8668,7 +8668,7 @@

6.8 – 输入输出设施

设置及获取基于文件开头处计算出的位置。 设置的位置由 offsetwhence 字符串 whence -制定的基点决定。基点可以是: +指定的基点决定。基点可以是:
  • "set": 基点为 0 (文件开头);
  • From b1096984ca0fec79fb31b528781d17c5e34c661a Mon Sep 17 00:00:00 2001 From: edwin Date: Tue, 20 Jan 2015 10:06:55 +0800 Subject: [PATCH 07/50] Update manual.html MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Otherwise, it raises an error. 如果找不到元方法,抛出一个操作 => 如果找不到元方法,抛出一个错误 --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index ac75492..c16eaf3 100644 --- a/manual.html +++ b/manual.html @@ -385,7 +385,7 @@

    2.4 – 元表及元方法

    一旦 Lua 找到了元方法, 它将把两个操作数作为参数传入元方法, 元方法的结果(调整为单个值)作为这个操作的结果。 -如果找不到元方法,将抛出一个操作。 +如果找不到元方法,将抛出一个错误。
  • "sub": From 82d0b83d9586f209c86ef5544a5546c1a9341034 Mon Sep 17 00:00:00 2001 From: edwin Date: Tue, 20 Jan 2015 10:56:59 +0800 Subject: [PATCH 08/50] Update manual.html --- manual.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/manual.html b/manual.html index c16eaf3..7067d9f 100644 --- a/manual.html +++ b/manual.html @@ -304,7 +304,7 @@

    2.3 – 错误处理

    2.4 – 元表及元方法

    -Lua 中的每个值都可以用一个 元表。 +Lua 中的每个值都可以有一个 元表。 这个 元表 就是一个普通的 Lua 表, 它用于定义原始值在特定操作下的行为。 如果你想改变一个值在特定操作下的行为,你可以在它的元表中设置对应域。 @@ -327,7 +327,7 @@

    2.4 – 元表及元方法

    使用 setmetatable -来替换一张表的元表。在 Lua 中,你不可以改变其它类型的值的元表 +来替换一张表的元表。在 Lua 中,你不可以改变表以外其它类型的值的元表 (除非你使用调试库(参见§6.10)); 若想改变这些非表类型的值的元表,请使用 C API。 @@ -9205,7 +9205,7 @@

    6.10 – 调试库

    -将 value (可以是 nil) 设为 table 的元表。 +将 value (可以是 nil)的元表设为 table 。 返回 value。 From d22b5f85ec6bd2032afe4f69e4c28d57bf03be56 Mon Sep 17 00:00:00 2001 From: keyring Date: Tue, 20 Jan 2015 11:54:45 +0800 Subject: [PATCH 09/50] =?UTF-8?q?update=201=EF=BC=8C2.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manual.html | 97 ++++++++++++++++++++++++++--------------------------- 1 file changed, 47 insertions(+), 50 deletions(-) diff --git a/manual.html b/manual.html index ac75492..daf3d98 100644 --- a/manual.html +++ b/manual.html @@ -43,43 +43,41 @@

    -

    1 – 概要

    +

    1 – 简介

    -Lua 是一门扩展式程序设计语言,它被设计成支持通用过程式编程,并有相关数据描述设施。 -同时也很好的支持了面向对象编程、函数式编程、数据驱动式编程。 +Lua 是一门扩展式程序设计语言,被设计成支持通用过程式编程,并有相关数据描述设施。 +同时对面向对象编程、函数式编程和数据驱动式编程也提供了良好的支持。 它作为一个强大、轻量的嵌入式脚本语言,可供任何需要的程序使用。 -它以库形式实现,用 clean C 写成。 -所谓 clean C ,指的是标准 C 和 C++ 间共通的一个子集。 +Lua 由 clean C(标准 C 和 C++ 间共通的子集) 实现成一个库。

    -作为一个扩展式语言,Lua 没有 "main" 程序的概念: +作为一门扩展式语言,Lua 没有 "main" 程序的概念: 它只能 嵌入 一个宿主程序中工作, -这个宿主程序被称作 被嵌入的程序 或简称为 宿主 。 -宿主程序可以调用函数执行一小段 Lua 代码,可以读写 Lua 变量,可以注入 C 函数让 Lua 代码调用。 -依靠这些 C 函数,在各种不同的领域中,都可以将拥有相同句法结构的 Lua 定制为该领域下的编程语言。 -Lua 的官方发布版包含了一个叫做 lua 的简单的宿主程序, -它用 Lua 库实现了一个完整的独立 Lua 解释器。 -你可以把它作交互式应用或用于批处理。 +该宿主程序被称为 被嵌入程序 或者简称 宿主 。 +宿主程序可以调用函数执行一小段 Lua 代码,可以读写 Lua 变量,可以注册 C 函数让 Lua 代码调用。 +依靠 C 函数,Lua 可以共享相同的语法框架来定制编程语言,从而适用不同的领域。 +Lua 的官方发布版包含一个叫做 lua 的宿主程序示例, +它是一个利用 Lua 库实现的完整独立的 Lua 解释器,可用于交互式应用或批处理。

    -Lua 是一个自由软件,它的使用许可证决定了它的使用过程没有任何担保。 -这份手册中描述的实现,可以在 Lua 的官方网站 www.lua.org 找到。 +Lua 是一个自由软件,其使用许可证决定了它的使用过程无需任何担保。 +本手册所描述的实现可以在 Lua 的官方网站 www.lua.org 找到。

    -跟其它的许多参考手册一样,这份文档有些地方比较枯燥。 -Lua 设计决定方面的讨论, +与其它的许多参考手册一样,这份文档有些地方比较枯燥。 +关于 Lua 背后的设计思想, 可以看看 Lua 网站上提供的技术论文。 -有关用 Lua 编程的细节介绍, -可以读一下 Roberto 的书,Programming in Lua。 +至于用 Lua 编程的细节介绍, +请参阅 Roberto 的书,Programming in Lua

    2 – 基本概念

    -这一章描述了语言的基本概念。 +本章描述了语言的基本概念。 @@ -89,13 +87,13 @@

    2.1 – 值与类型

    Lua 是一门动态类型语言。 这意味着变量没有类型;只有值才有类型。 语言中不设类型定义。 -所有的值都带有自己的类型。 +所有的值携带自己的类型。

    Lua 中所有的值都是 一等公民。 -这意味着所有的值都可以保存在变量中、 -当作参数传递给其它函数、以及作为返回值出现。 +这意味着所有的值均可保存在变量中、 +当作参数传递给其它函数、以及作为返回值。

    @@ -104,81 +102,80 @@

    2.1 – 值与类型

    string, function, userdata, thread, and table. Nil 是值 nil 的类型, -它的主要特征就是和其它值区别开; -它通常用来表示一个有意义的值不存在时的状态。 +其主要特征就是和其它值区别开;通常用来表示一个有意义的值不存在时的状态。 Booleanfalsetrue 两个值的类型。 nilfalse 都会导致条件判断为假; -所有其它的值都表现为真。 -Number 代表了整数或实数(浮点数)。 +而其它任何值都表示为真。 +Number 代表了整数和实数(浮点数)。 String 表示一个不可变的字节序列。 Lua 对 8 位是友好的: -字符串可以包含任意 8 位值, -其中包括零 ('\0') 。 +字符串可以容纳任意 8 位值, +其中包含零 ('\0') 。 Lua 的字符串与编码无关; -它不理会字符串里的内容到底是什么。 +它不关心字符串中具体内容。

    -number 类型有两种内部呈现方式, -一种称为 整数 ,另一种称为 浮点数。 -对于使用哪种内部形式,Lua 有明确的规则, -但它也按需(参见 §3.4.3)自动转换。 -因此,程序员大多可以选择完全忽略整数与浮点数之间的差异或者假设完全的控制了每个数字是如何呈现的。 -标准 Lua 使用 64 位整数以及双精度(64 位)浮点数, -但你可以把 Lua 编译成使用 32 位整数及单精度(32 位)浮点数。 -以 32 位表示数字对小型机器以及嵌入式系统特别有意义。 +number 类型有两种内部表现方式, + 整数浮点数。 +对于何时使用哪种内部形式,Lua 有明确的规则, +但它也按需(参见 §3.4.3)作自动转换。 +因此,程序员多数情况下可以选择忽略整数与浮点数之间的差异或者假设完全控制每个数字的内部表现方式。 +标准 Lua 使用 64 位整数和双精度(64 位)浮点数, +但你也可以把 Lua 编译成使用 32 位整数和单精度(32 位)浮点数。 +以 32 位表示数字对小型机器以及嵌入式系统特别合适。 (参见 luaconf.h 文件中的宏 LUA_32BITS 。)

    -Lua 可以调用(以及操作)用Lua 或 C (参见 §3.4.10)编写的函数。 +Lua 可以调用(以及操作)用 Lua 或 C (参见 §3.4.10)编写的函数。 这两种函数有统一类型 function

    userdata 类型允许将 C 中的数据保存在 Lua 变量中。 用户数据类型的值是一个内存块, -它有两种用户数据: +有两种用户数据: 完全用户数据 ,指一块由 Lua 管理的内存对应的对象; 轻量用户数据 ,则指一个简单的 C 指针。 -用户数据在 Lua 中没有预定义的操作,你只能对它进行赋值操作及判断两个用户数据是否相同。 -使用 元表 的话,程序员可以给完全用户数据定义一系列的操作 +用户数据在 Lua 中除了赋值与相等性判断之外没有其他预定义的操作。 +通过使用 元表 ,程序员可以给完全用户数据定义一系列的操作 (参见 §2.4)。 -在 Lua 代码中,你不能查和修改一个用户数据的值,这些工作只能通过 C API 完成, +你只能通过 C API 而无法在 Lua 代码中创建或者修改用户数据的值, 这保证了数据仅被宿主程序所控制。

    -thread 类型表示了一个独立的执行序列,它被用于实现协程 +thread 类型表示了一个独立的执行序列,被用于实现协程 (参见 §2.6)。 -Lua 线程与操作系统线程并不相关。 -Lua 为所有的系统,包括那些不提供原生线程支持的系统,提供了协程支持。 +Lua 的线程与操作系统的线程毫无关系。 +Lua 为所有的系统,包括那些不支持原生线程的系统,提供了协程支持。

    table 是一个关联数组, -也就是说,这个数组不仅仅以数做索引,除了 nil 和 NaN 之外的 Lua 值 +也就是说,这个数组不仅仅以数字做索引,除了 nil 和 NaN 之外的所有 Lua 值 都可以做索引。 (Not a Number 是一个特殊的数字,它用于表示未定义或表示不了的运算结果,比如 0/0。) 表可以是 异构 的; 也就是说,表内可以包含任何类型的值( nil 除外)。 任何键的值若为 nil 就不会被记入表结构内部。 -换句话说,对于表内不存在的键,都对应着值 nil 。 +换言之,对于表内不存在的键,都对应着值 nil

    表是 Lua 中唯一的数据结构, -它可被用于表示普通数组、序列、符号表、集合、记录、图、树、等等。 +它可被用于表示普通数组、序列、符号表、集合、记录、图、树等等。 对于记录,Lua 使用域名作为索引。 语言提供了 a.name 这样的语法糖来替代 a["name"] 这种写法以方便记录这种结构的使用。 -在 Lua 中创建表结构有多种方式(参见 §3.4.9)。 +在 Lua 中有多种便利的方式创建表(参见 §3.4.9)。

    我们使用 序列 这个术语来表示一个用 {1..n} 的正整数集做索引的表。 -这里的非负整数 n 被称为这个序列的长度(参见 §3.4.7)。 +这里的非负整数 n 被称为该序列的长度(参见 §3.4.7)。

    From 6af494b4d739eeb72cc9e5ffdaeffa556fb309d3 Mon Sep 17 00:00:00 2001 From: isaf Date: Tue, 20 Jan 2015 14:37:10 +0800 Subject: [PATCH 10/50] Update manual.html --- manual.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/manual.html b/manual.html index ac75492..07f0b0a 100644 --- a/manual.html +++ b/manual.html @@ -2309,7 +2309,7 @@

    4.1 –

    方便起见, 所有针对栈的 API 查询操作都不严格遵循栈的操作规则。 而是可以用一个 索引 来指向栈上的任何元素: -正的索引指的是栈上的绝对位置(从一开始); +正的索引指的是栈上的绝对位置(从1开始); 负的索引则指从栈顶开始的偏移量。 展开来说,如果堆栈有 n 个元素, 那么索引 1 表示第一个元素 @@ -2494,7 +2494,7 @@

    4.6 – C 中的错误处理

    然后调用 abort 来退出宿主程序。 你的 panic 函数只要不返回 (例如:长跳转到你在 Lua 外你自己设置的恢复点) -就可以必须退出程序。 +就可以不退出程序。

    @@ -2589,7 +2589,7 @@

    4.7 – C 中的让出处理

    之后做的那些事情。 现在我们必须通知 Lua 说,你必须在被 lua_pcall -执行得 Lua 代码发生过中断(错误或让出)后, +执行的 Lua 代码发生过中断(错误或让出)后, 还得继续调用 k 。 所以我们还得继续改写这段代码,把 lua_pcall 替换成 @@ -2607,7 +2607,7 @@

    4.7 – C 中的让出处理

    如果没有发生过任何让出,调用的函数正常返回, 那么 lua_pcallk (以及 lua_callk)也会正常返回。 -(当然,这个例子中你也可以不再之后调用延续函数, +(当然,这个例子中你也可以不在之后调用延续函数, 而是在原函数的调用后直接写上需要做的工作。) From 3955969872e5f94abded7cbb5a803c1bb4f74678 Mon Sep 17 00:00:00 2001 From: Cloud Wu Date: Tue, 20 Jan 2015 17:55:58 +0800 Subject: [PATCH 11/50] table may be nil --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 0d394d4..677e443 100644 --- a/manual.html +++ b/manual.html @@ -9205,7 +9205,7 @@

    6.10 – 调试库

    -将 value (可以是 nil)的元表设为 table 。 +将 value 的元表设为 table (可以是 nil)。 返回 value。 From 7f261ea7936a4f09cb27e3b4d452e4f2d6d878ea Mon Sep 17 00:00:00 2001 From: yksalun <631169703@qq.com> Date: Tue, 20 Jan 2015 22:38:56 +0800 Subject: [PATCH 12/50] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E2=80=9C?= =?UTF-8?q?=E4=BD=9C=E4=B8=BA=E2=80=9D=E4=B8=BA=E2=80=9C=E4=BD=9C=E7=94=A8?= =?UTF-8?q?=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改了“作为”为“作用” --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 677e443..7e01006 100644 --- a/manual.html +++ b/manual.html @@ -2240,7 +2240,7 @@

    3.5 – 可见性规则

    因为有这样一个词法作用范围的规则, -局部变量可以被在它的作为范围内定义的函数自由使用。 +局部变量可以被在它的作用范围内定义的函数自由使用。 当一个局部变量被内层的函数中使用的时候, 它被内层函数称作 上值,或是 外部局部变量。 From b2dcaeb90cb95170ad05e5efcfa5723158f4f273 Mon Sep 17 00:00:00 2001 From: shuax Date: Wed, 21 Jan 2015 09:19:14 +0800 Subject: [PATCH 13/50] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=B8=8D=E7=94=A8?= =?UTF-8?q?=E5=AE=8B=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manual.css | 1 + 1 file changed, 1 insertion(+) diff --git a/manual.css b/manual.css index ca613cd..1897b6f 100644 --- a/manual.css +++ b/manual.css @@ -5,6 +5,7 @@ h3 code { pre, code { font-size: 12pt ; + font-family: Verdana, Geneva, sans-serif !important; } span.apii { From 4802da685bcc2a4e1452f9b9e503d508f9c9734a Mon Sep 17 00:00:00 2001 From: xfirefly Date: Wed, 21 Jan 2015 14:11:48 +0800 Subject: [PATCH 14/50] =?UTF-8?q?=E5=A6=82=E6=9E=9C=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E5=A6=82=E4=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 如果改变这个序列,我们可以改变 require 如果查找一个模块。 => 如果改变这个序列,我们可以改变 require 如何查找一个模块。 --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 7e01006..c02009e 100644 --- a/manual.html +++ b/manual.html @@ -6949,7 +6949,7 @@

    6.3 – 模块

    require 遵循 package.searchers 序列的指引来查找加载器。 -如果改变这个序列,我们可以改变 require 如果查找一个模块。 +如果改变这个序列,我们可以改变 require 如何查找一个模块。 下列说明基于 package.searchers 的默认配置。 From 97f17c456a4cb138b0e78fa222715d543a2e6e54 Mon Sep 17 00:00:00 2001 From: keyring Date: Wed, 21 Jan 2015 18:01:57 +0800 Subject: [PATCH 15/50] update index and content --- contents.html | 4 ++-- index.html | 60 ++++++++++++++++++++++++--------------------------- 2 files changed, 30 insertions(+), 34 deletions(-) diff --git a/contents.html b/contents.html index 0931e3c..9fe6b9a 100644 --- a/contents.html +++ b/contents.html @@ -22,7 +22,7 @@

    这份参考手册是对 Lua 语言的官方定义。 -关于 Lua 编程的方方面面,则放在 +关于 Lua 编程的全部细节,则放在 Programming in Lua 这本书中。 @@ -44,7 +44,7 @@

    目录

      -
    • 1 – 概要 +
    • 1 – 简介

    • 2 – 基本概念
        diff --git a/index.html b/index.html index e0109e4..9c9b424 100644 --- a/index.html +++ b/index.html @@ -31,7 +31,7 @@

        Lua -Lua 5.3.0 欢迎你 +Lua 5.3 欢迎你

        @@ -56,15 +56,15 @@

        关于 Lua

        开发。 Lua 是一个 自由软件, -它在全世界范围内广泛用于很多产品和项目。 +广泛应用于世界上无数产品和项目。

        Lua 的 官方网站 -上有关于 Lua 的完整信息, -其中包括 +上提供了关于 Lua 的完整信息, +包括 综合概要 -以及最新版的 +和最新的 文档, 需要注意的是 参考手册 可能和 @@ -73,73 +73,69 @@

        关于 Lua

        安装 Lua

        -Lua 是以 +Lua 以 源代码 -的形式发布的。 -在使用前,你需要自己构建它。 -构建 Lua 非常简单,因为 Lua 是用纯粹的 ANSI C 实现的,在所有有 ANSI C 编译器的平台都可以直接编译。 -同时,Lua 还可以直接以 C++ 形式编译。 +的形式发布,使用之前,你需要构建它。 +构建 Lua 非常简单,因为 Lua 是用纯粹的 ANSI C 实现的,在所有具备 ANSI C 编译器的平台都可以直接编译。 +同时,Lua 也可以直接以 C++ 形式编译。 下面介绍了类 Unix 平台上的构建流程,另有 其它系统构建介绍配置选项 以作参考。

        -如果你没有时间或兴趣自己编译 Lua , +如果你没有时间或兴趣自己编译 Lua, 可以从 -LuaBinaries 获取编译后的二进制文件, +LuaBinaries 获取编译后的二进制文件 或者从 LuaDist 这里获取 Lua 的多平台发布版(自带电池)。

        构建 Lua

        -对于大多数类 Unix 平台,只需要输入 "make" 加上合适的平台名即可。细节如下: +在大多数类 Unix 平台上,输入 "make" 加上合适的平台名即可。步骤如下:

        1. -打开一个控制台窗口,切换到名为 lua-5.3.0 的目录下。 -这里有一个 Makefile 文件内含构建及安装流程。 +打开一个控制台窗口,切换到 lua-5.3.0 目录。 +目录下的 Makefile 文件内包含了构建与安装流程。

        2. - 运行 "make" 看看你的平台是否列在其中。 + 运行 "make" 并查看你的平台是否列在其中。 当前支持的平台有:

          aix bsd c89 freebsd generic linux macosx mingw posix solaris

          - 如果你的平台列在其中,那么只需要运行 "make xxx",这里的 xxx - 指你的平台名。 + 如果你的平台在其中,运行 "make xxx" 即可,xxx 代表你的平台名。

          - 如果你的平台不在这个列表内,那么先试一下最接近的那个,然后再按 posix generic c89 这个次序依次尝试。 + 如果你的平台不在其中,先尝试最相近的平台,再按 posix generic c89 顺序依次尝试。

        3. -编译流程要花一会儿功夫,最终在 src 目录产生三个文件: +编译过程很短,最终在 src 目录下生成三个文件: lua (解释器), -luac (编译器), -以及 liblua.a (静态库) 。 +luac (编译器)和 liblua.a (静态库) 。

        4. - 你可以运行 "make test" 检查一下构建是否成功, - 它会运行解释器打印出版本号。 + 构建完成后,可以运行 "make test" 来检查是否成功。 + 它会运行解释器并打印版本号。

        -如果你是 Linux 系统,出现了编译错误的话,请确认你有安装 -readline 开发包。 -如果还是有链接错误,可以试一下 +如果你是 Linux 系统并出现了编译错误,请确认你是否安装了 +readline (也可能叫 libreadline-dev 或者 readline-devel)开发包。 +之后,如果还有链接错误,尝试 "make linux MYLIBS=-ltermcap" 。

        安装 Lua

        - 一旦你构建完毕,可能希望把 Lua 安装到系统默认位置。 - 那么,执行 "make install" 就可以了。 + 一旦你构建完毕,可能希望把 Lua 安装到系统默认位置, + 那么执行 "make install" 即可。 系统默认位置以及如何安装都定义在 Makefile 中。 这个过程可能需要有相关的权限。

        - 运行 "make xxx install" 可以构建和安装一步到位, - 这里的 xxx 指你的平台名。 + 运行 "make xxx install" 可以构建和安装一步到位,xxx 指你的平台名。

        如果你想把 Lua 安装在本地,运行 "make local"。 @@ -148,7 +144,7 @@

        安装 Lua

        子目录,并将下列文件安装在其中。 如果你想安装到本地其它目录, - 运行 "make install INSTALL_TOP=xxx",这里的 xxx 指你选择的目录。 + 运行 "make install INSTALL_TOP=xxx",xxx 指你选择的目录。 由于安装过程中会切换到 src 以及 doc 目录进行, 所以当 INSTALL_TOP 不是绝对路径时务必小心。 From 06020f9f252d5412fc359b751ea0d1f4bf131d71 Mon Sep 17 00:00:00 2001 From: keyring Date: Thu, 22 Jan 2015 16:29:23 +0800 Subject: [PATCH 16/50] =?UTF-8?q?=E6=A0=87=E9=A2=98=E4=B8=8D=E7=94=A8?= =?UTF-8?q?=E5=AE=8B=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua.css b/lua.css index fe1caab..93110f8 100644 --- a/lua.css +++ b/lua.css @@ -14,7 +14,7 @@ body { } h1, h2, h3, h4 { - font-family: SimSun, Verdana, Geneva, sans-serif ; + font-family: "WenQuanYi Micro Hei", "Microsoft YaHei", Helvetica, Verdana, Geneva, sans-serif ; font-weight: normal ; font-style: normal ; } From 6deb06e501a3f5b58067966561ecf5ae486e600a Mon Sep 17 00:00:00 2001 From: keyring Date: Thu, 22 Jan 2015 16:33:13 +0800 Subject: [PATCH 17/50] =?UTF-8?q?=E6=94=B9=E4=B8=BA=E4=B8=AD=E6=96=87?= =?UTF-8?q?=E6=A0=87=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manual.html | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/manual.html b/manual.html index 686a9ea..f216fb3 100644 --- a/manual.html +++ b/manual.html @@ -98,9 +98,8 @@

        2.1 – 值与类型

        Lua 中有八种基本类型: -nil, boolean, number, -string, function, userdata, -thread, and table. +nilbooleannumberstringfunctionuserdata、 +threadtableNil 是值 nil 的类型, 其主要特征就是和其它值区别开;通常用来表示一个有意义的值不存在时的状态。 Booleanfalsetrue 两个值的类型。 From eaf319eb774a0df3f70ad5ee90b65465ec0bbd9a Mon Sep 17 00:00:00 2001 From: dbHunter Date: Thu, 22 Jan 2015 21:16:31 +0800 Subject: [PATCH 18/50] Update manual.html --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index f216fb3..af88f75 100644 --- a/manual.html +++ b/manual.html @@ -680,7 +680,7 @@

        2.5.1 – 垃圾收集元方法

        当你关闭一个状态机(参见 lua_close), Lua 将调用所有被标记了需要触发终结器对象的终结过程, 其次序为标记次序的逆序。 -在这个过程中,任何终结器再次标记对象的行为都会不会生效。 +在这个过程中,任何终结器再次标记对象的行为都不会生效。 From 848ad7ba3cdec58dde5837adf804f67fb415caf6 Mon Sep 17 00:00:00 2001 From: Cloud Wu Date: Fri, 23 Jan 2015 21:01:52 +0800 Subject: [PATCH 19/50] typo --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index af88f75..94b2bea 100644 --- a/manual.html +++ b/manual.html @@ -3646,7 +3646,7 @@

        4.8 – 函数和类型

        -Lua 中数字的类型。缺省是 double ,但是你改成 float 。 +Lua 中数字的类型。缺省是 double ,但是你可以改成 float 。 (参见 luaconf.h 中的 LUA_REAL 。) From 31a7bf71d3f3bb17fb6dfd9f9062855ea64c9b53 Mon Sep 17 00:00:00 2001 From: keyring Date: Sat, 24 Jan 2015 15:55:35 +0800 Subject: [PATCH 20/50] update 2.3 --- manual.html | 41 +++++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/manual.html b/manual.html index 94b2bea..4395bff 100644 --- a/manual.html +++ b/manual.html @@ -260,40 +260,37 @@

        2.2 – 环境与全局环境

        2.3 – 错误处理

        -Lua 作为一门嵌入式语言, -所有的 Lua 行为都始于宿主程序的 C 代码中对于 Lua 库里某函数的一次调用。 -(当你使用 Lua 独立版本时,lua 程序就是那个宿主程序。) -在编译或运行一个 Lua 代码块时,无论发生任何错误, -控制权都返还给宿主。接下来可以针对情况来采取恰当的措施 -(比如打印错误消息)。 +由于 Lua 是一门嵌入式扩展语言,其所有行为均源于宿主程序中 C 代码对某个 Lua 库函数的调用。 +(单独使用 Lua 时,lua 程序就是宿主程序。) +所以,在编译或运行 Lua 代码块的过程中,无论何时发生错误, +控制权都返回给宿主,由宿主负责采取恰当的措施(比如打印错误消息)。

        -Lua 代码中可以通过调用 error 函数来显式的抛出一个错误。 +可以在 Lua 代码中调用 error 函数来显式地抛出一个错误。 如果你需要在 Lua 中捕获这些错误, -你可以使用 pcall 或 +可以使用 pcallxpcall -以 保护模式 来调用一个函数。 +在 保护模式 下调用一个函数。

        -无论何时错误发生,都会产生一个携带有错误信息的 错误对象 -(也被称为 错误消息)。 -Lua 本身只会产生字符串类型的错误对象, -但你的程序可以为一个错误抛出任何类型的错误对象。 -这就看 Lua 程序或你的宿主如何处理这些错误对象了。 +无论何时出现错误,都会抛出一个携带错误信息的 错误对象 +(错误消息)。 +Lua 本身只会为错误生成字符串类型的错误对象, +但你的程序可以为错误生成任何类型的错误对象, +这取决于 Lua 程序或其宿主程序如何处理这些错误对象。

        -当你使用 xpcall 或 +使用 xpcalllua_pcall 时, -你应当给出一个 消息处理器 用于发生错误时的处理流程。 -这个处理器函数会被传入原始的错误消息,并应返回一个新的错误消息。 +你应该提供一个 消息处理函数 用于错误抛出时调用。 +该函数需接收原始的错误消息,并返回一个新的错误消息。 它在错误发生后栈尚未展开时调用, -因此它可以通过栈来收集更多的信息。 -例如它可以通过探知栈来创建一组栈回溯信息。 -这个处理器函数也被保护模式调用以保护; -因此在处理器函数内发生的错误会再次调用它。 -如果递归调用太深,Lua 会打破递归并返回一个恰当的消息。 +因此可以利用栈来收集更多的信息, +比如通过探知栈来创建一组栈回溯信息。 +同时,该处理函数也处于保护模式下,所以该函数内发生的错误会再次触发它(递归)。 +如果递归太深,Lua 会终止调用并返回一个合适的消息。 From cfcc27c79d9599d1904b7fe727a728ed96d658e9 Mon Sep 17 00:00:00 2001 From: keyring Date: Mon, 26 Jan 2015 10:16:30 +0800 Subject: [PATCH 21/50] fix --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 4395bff..eff115c 100644 --- a/manual.html +++ b/manual.html @@ -279,7 +279,7 @@

        2.3 – 错误处理

        错误消息)。 Lua 本身只会为错误生成字符串类型的错误对象, 但你的程序可以为错误生成任何类型的错误对象, -这取决于 Lua 程序或其宿主程序如何处理这些错误对象。 +这就看你的 Lua 程序或宿主程序如何处理这些错误对象。

        使用 xpcall 或 From b620071856320f43c960ff01dd4d462a70d76428 Mon Sep 17 00:00:00 2001 From: Cloud Wu Date: Sun, 1 Feb 2015 14:34:10 +0800 Subject: [PATCH 22/50] Issue #35 --- manual.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manual.html b/manual.html index eff115c..fe7b2fc 100644 --- a/manual.html +++ b/manual.html @@ -220,13 +220,13 @@

        2.2 – 环境与全局环境

        后面在 §3.2 以及 §3.3.3 会讨论, 引用一个叫 var 的自由名字(指在任何层级都未被声明的名字) 在句法上都被翻译为 _ENV.var 。 -此外,每个被编译的 Lua 代码块都会有一个额外的局部变量叫 _ENV +此外,每个被编译的 Lua 代码块都会有一个外部的局部变量叫 _ENV (参见 §3.3.2), 因此,_ENV 这个名字永远都不会成为一个代码块中的自由名字。

        -在转译那些自由名字时,_ENV 是否是那个额外的局部变量无所谓。 +在转译那些自由名字时,_ENV 是否是那个外部的局部变量无所谓。 _ENV 和其它你可以使用的变量名没有区别。 这里特别指出,你可以定义一个新变量或指定一个参数叫这个名字。 当编译器在转译自由名字时所用到的 _ENV , From 5188ef62df8897dc595549417a05f77d4bafc790 Mon Sep 17 00:00:00 2001 From: yksalun <631169703@qq.com> Date: Wed, 4 Feb 2015 21:19:38 +0800 Subject: [PATCH 23/50] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E4=BA=86=E5=A4=9A?= =?UTF-8?q?=E7=9A=84"=E5=88=86=E9=85=8D"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 去掉了多的"分配" --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 7e01006..6c385cf 100644 --- a/manual.html +++ b/manual.html @@ -3593,7 +3593,7 @@

        4.8 – 函数和类型

        void *lua_newuserdata (lua_State *L, size_t size);

        -这个函数分配分配一块指定大小的内存块, +这个函数分配一块指定大小的内存块, 把内存块地址作为一个完全用户数据压栈, 并返回这个地址。 From 2645f17608591967b4845a6e3213d08624ed208e Mon Sep 17 00:00:00 2001 From: Cloud Wu Date: Tue, 10 Feb 2015 13:29:17 +0800 Subject: [PATCH 24/50] fix typo --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 4957c99..4690c79 100644 --- a/manual.html +++ b/manual.html @@ -4850,7 +4850,7 @@

        4.9 – 调试接口

      • nparams: -函数固定行参个数 +函数固定形参个数 (对于 C 函数永远是 0 )。
      • From db3d65e9d80413dd0252de73d0bc0badd8d679dc Mon Sep 17 00:00:00 2001 From: Cloud Wu Date: Tue, 10 Mar 2015 15:54:48 +0800 Subject: [PATCH 25/50] glossary --- contents.html | 2 +- term.html => glossary.html | 0 index.html | 2 +- manual.html | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) rename term.html => glossary.html (100%) diff --git a/contents.html b/contents.html index 9fe6b9a..10886f5 100644 --- a/contents.html +++ b/contents.html @@ -33,7 +33,7 @@

        · 索引 · -中英术语对照表 +中英术语对照表
        Lua.org, PUC-Rio 版权所有 © 2015 , diff --git a/term.html b/glossary.html similarity index 100% rename from term.html rename to glossary.html diff --git a/index.html b/index.html index 9c9b424..29529f1 100644 --- a/index.html +++ b/index.html @@ -45,7 +45,7 @@

        · 参考手册 · -中英术语对照表 +中英术语对照表

        关于 Lua

        diff --git a/manual.html b/manual.html index 4690c79..25bb6ba 100644 --- a/manual.html +++ b/manual.html @@ -33,7 +33,7 @@

        · 索引 · -中英术语对照表 +中英术语对照表

        From 87f0b8517042a450395da5cbfcf85314e1c7e70d Mon Sep 17 00:00:00 2001 From: peimin Date: Sat, 18 Apr 2015 09:27:44 +0800 Subject: [PATCH 26/50] --- manual.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/manual.html b/manual.html index 25bb6ba..5902446 100644 --- a/manual.html +++ b/manual.html @@ -6325,9 +6325,9 @@

        6 – 标准库

      • 输入输出 (§6.8);
      • -
      • 操作系统设施 (§6.9);
      • +
      • 操作系统库 (§6.9);
      • -
      • 调试设施 (§6.10).
      • +
      • 调试库 (§6.10).

      除了基础库和包管理库, @@ -6921,7 +6921,7 @@

      6.2 – 协程管理

      6.3 – 模块

      -包管理库提供了从 Lua 中加载模块的基础设施。 +包管理库提供了从 Lua 中加载模块的基础库。 只有一个导出函数直接放在全局环境中: require。 所有其它的部分都导出在表 package 中。 @@ -8352,7 +8352,7 @@

      6.7 – 数学函数

      -

      6.8 – 输入输出设施

      +

      6.8 – 输入输出库

      I/O 库提供了两套不同风格的文件处理接口。 @@ -8734,7 +8734,7 @@

      6.8 – 输入输出设施

      -

      6.9 – 操作系统设施

      +

      6.9 – 操作系统库

      这个库都通过表 os 实现。 From b13b249e44a0b20ff6267e86a7ea1a2acf578520 Mon Sep 17 00:00:00 2001 From: keyring Date: Thu, 30 Apr 2015 13:34:48 +0800 Subject: [PATCH 27/50] =?UTF-8?q?update=202.6=EF=BC=8C=E5=8D=8F=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manual.html | 75 ++++++++++++++++++++++++++--------------------------- 1 file changed, 37 insertions(+), 38 deletions(-) diff --git a/manual.html b/manual.html index 5902446..932c58b 100644 --- a/manual.html +++ b/manual.html @@ -749,34 +749,35 @@

      2.5.2 – 弱表

      2.6 – 协程

      -Lua 支持协程,同时它也被称为 协同式多线程。 -Lua 为每个协程提供一个独立的运行序。 -然而和多线程系统中的线程不同, -协程仅在显式地调用一个让出函数时才挂起当前的执行状态。 +Lua 支持协程,也叫 协同式多线程。 +一个协程在 Lua 中代表了一段独立的执行线程。 +然而,与多线程系统中的线程的区别在于, +协程仅在显式调用一个让出(yield)函数时才挂起当前的执行。

      -通过调用 +调用函数 coroutine.create 可创建一个协程。 -它唯一的参数是一个函数,这个函数将作为这个协程的主函数。 -create 函数仅仅创建出这个协程然后返回它的句柄 -(一个类型为 thread 的对象); -它并不运行该协程。 +其唯一的参数是该协程的主函数。 +create 函数只负责新建一个协程并返回其句柄 +(一个 thread 类型的对象); +而不会启动该协程。

      -通过调用 +调用 coroutine.resume -可执行一个协程。 +函数执行一个协程。 第一次调用 coroutine.resume 时,第一个参数应传入 coroutine.create -返回的线程对象,这样协程就会从其主函数的第一行开始执行。 +返回的线程对象,然后协程从其主函数的第一行开始执行。 +传递给 coroutine.resume -后面的参数将作为主函数的参数传入。 -协程将一直运行到它结束或 让出。 +的其他参数将作为协程主函数的参数传入。 +协程启动之后,将一直运行到它终止或 让出

      @@ -793,40 +794,38 @@

      2.6 – 协程

      -让出协程的执行通过调用 -coroutine.yield 完成。 -当协程让出, -即使让出发生在内嵌函数调用中 -(即不在主函数,但在主函数直接或间接调用的函数内部), -之前对该协程调用的 coroutine.resume 会立刻返回。 -在让出的情况下, -coroutine.resume 依旧返回 true, -接下来的返回值是传给 -coroutine.yield 的那些参数。 -当下一次你延续同一个协程时, -协程会接在让出点继续运行。 -调用 coroutine.yield -的让出点会返回传给 +通过调用 +coroutine.yield 使协程暂停执行,让出执行权。 +协程让出时,对应的最近 coroutine.resume +函数会立刻返回,即使该让出操作发生在内嵌函数调用中 +(即不在主函数,但在主函数直接或间接调用的函数内部)。 +在协程让出的情况下, +coroutine.resume 也会返回 true, +并加上传给 +coroutine.yield 的参数。 +当下次重启同一个协程时, +协程会接着从让出点继续执行。 + 调用coroutine.yield +会返回任何传给 coroutine.resume -的额外参数。 +的第一个参数之外的其他参数。

      -就像 -coroutine.create 那样, +与 +coroutine.create 类似, coroutine.wrap 函数也会创建一个协程。 -不同的是,它不返回协程本身,而是返回一个函数。 -调用这个函数将延续这个协程。 -为这个函数提供的参数相当于 -传给 coroutine.resume 的额外参数。 +不同之处在于,它不返回协程本身,而是返回一个函数。 +调用这个函数将启动该协程。 +传递给该函数的任何参数均当作 coroutine.resume 的额外参数。 coroutine.wrap -的返回值是 +返回 coroutine.resume -的返回值中除去第一个返回值(布尔型的错误码)剩余的部分。 +的所有返回值,除了第一个返回值(布尔型的错误码)。 和 coroutine.resume 不同, coroutine.wrap 不会捕获错误; -错误会传播给调用者。 +而是将任何错误都传播给调用者。

      From c5a16bbcf30e9e31638bf91d6857922915ad5b93 Mon Sep 17 00:00:00 2001 From: Zhang Weihu <496781108@qq.com> Date: Thu, 15 Oct 2015 18:03:41 +0800 Subject: [PATCH 28/50] =?UTF-8?q?=E5=8A=A0=E4=B8=8A=E7=BC=BA=E5=A4=B1?= =?UTF-8?q?=E7=9A=84=E5=8D=8A=E5=8F=A5=E8=AF=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 932c58b..378d075 100644 --- a/manual.html +++ b/manual.html @@ -3955,7 +3955,7 @@

      4.8 – 函数和类型

      const char *lua_pushstring (lua_State *L, const char *s);

      -将指针 s 指向的零结尾的字符串压栈。 +将指针 s 指向的零结尾的字符串压栈。Lua 对这个字符串做一个内部副本(或是复用一个副本), 因此 s 处的内存在函数返回后,可以释放掉或是立刻重用于其它用途。 From ffb90993f40a349cf4c1bc31f8b6a13415b33d1e Mon Sep 17 00:00:00 2001 From: AD Date: Mon, 19 Oct 2015 16:47:11 +0800 Subject: [PATCH 29/50] Update manual.html MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将颠倒的词“以可”修改为“可以” --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 378d075..2dd10e8 100644 --- a/manual.html +++ b/manual.html @@ -2386,7 +2386,7 @@

      4.3 – 有效索引与可接受索引

      -对于那些以可接受索引调用的函数, +对于那可以接受索引调用的函数, 无效索引被看作包含了一个虚拟类型 LUA_TNONE 的值, 这个值的行为和 nil 一致。 From 13cf74c2b9e20ef2bdf59f57f7fea907f5096c33 Mon Sep 17 00:00:00 2001 From: great90 <897346026@qq.com> Date: Tue, 27 Oct 2015 16:41:05 +0800 Subject: [PATCH 30/50] =?UTF-8?q?=E5=AE=98=E6=96=B9=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E5=AF=B9math.random=E7=9A=84=E5=8F=82=E6=95=B0=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 官方文档对math.random的参数m,n描述为m-n不能为负数,实际应该为n-m不能为负数 --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 2dd10e8..978eaf3 100644 --- a/manual.html +++ b/manual.html @@ -8267,7 +8267,7 @@

      6.7 – 数学函数

      当以两个整数 mn 调用时, math.random 返回一个 [m, n] 区间 内一致分布的整数伪随机数。 -(值 m-n 不能是负数,且必须在 Lua 整数的表示范围内。) +(值 n-m 不能是负数(官方文档原文描述有误),且必须在 Lua 整数的表示范围内。) 调用 math.random(n) 等价于 math.random(1,n)。 From f7b2897394071e4844c7cbcf1c1d8f1eec858309 Mon Sep 17 00:00:00 2001 From: great90 <897346026@qq.com> Date: Tue, 27 Oct 2015 16:49:54 +0800 Subject: [PATCH 31/50] =?UTF-8?q?=E5=AE=98=E6=96=B9=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E5=AF=B9math.random=E5=8F=82=E6=95=B0=E6=8F=8F=E8=BF=B0bug?= =?UTF-8?q?=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 官方文档对math.random参数描述bug内容补充 --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 978eaf3..ba1ef42 100644 --- a/manual.html +++ b/manual.html @@ -8267,7 +8267,7 @@

      6.7 – 数学函数

      当以两个整数 mn 调用时, math.random 返回一个 [m, n] 区间 内一致分布的整数伪随机数。 -(值 n-m 不能是负数(官方文档原文描述有误),且必须在 Lua 整数的表示范围内。) +(值 n-m 不能是负数(官方文档原文描述m-n cannot be negative有误),且必须在 Lua 整数的表示范围内。) 调用 math.random(n) 等价于 math.random(1,n)。 From ae0c3480e82bac544389c25e7fb055fdc095dcff Mon Sep 17 00:00:00 2001 From: great90 <897346026@qq.com> Date: Tue, 27 Oct 2015 22:47:23 +0800 Subject: [PATCH 32/50] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index ba1ef42..199c0f3 100644 --- a/manual.html +++ b/manual.html @@ -8267,7 +8267,7 @@

      6.7 – 数学函数

      当以两个整数 mn 调用时, math.random 返回一个 [m, n] 区间 内一致分布的整数伪随机数。 -(值 n-m 不能是负数(官方文档原文描述m-n cannot be negative有误),且必须在 Lua 整数的表示范围内。) +(值 n-m 不能是负数,且必须在 Lua 整数的表示范围内。) 调用 math.random(n) 等价于 math.random(1,n)。 From 6d26df24c7de742183601280130b57750a09feca Mon Sep 17 00:00:00 2001 From: Cloud Wu Date: Mon, 4 Jan 2016 20:59:09 +0800 Subject: [PATCH 33/50] see pr #45 --- manual.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manual.html b/manual.html index 199c0f3..70f3a87 100644 --- a/manual.html +++ b/manual.html @@ -805,8 +805,8 @@

      2.6 – 协程

      coroutine.yield 的参数。 当下次重启同一个协程时, 协程会接着从让出点继续执行。 - 调用coroutine.yield -会返回任何传给 +此时,此前让出点处对 coroutine.yield 的调用 +会返回,返回值为传给 coroutine.resume 的第一个参数之外的其他参数。 From 4ae6081554546c6ad4e75a1b543fba97a0fcf76d Mon Sep 17 00:00:00 2001 From: David Feng Date: Thu, 23 Jun 2016 19:55:03 +0800 Subject: [PATCH 34/50] fix pushliteral --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 70f3a87..8227850 100644 --- a/manual.html +++ b/manual.html @@ -3904,7 +3904,7 @@

      4.8 – 函数和类型

      const char *lua_pushliteral (lua_State *L, const char *s);

      -这个宏等价于 lua_pushlstring, +这个宏等价于 lua_pushstring, 区别仅在于只能在 s 是一个字面量时才能用它。 它会自动给出字符串的长度。 From 3e2cd502326e8b6bd8ae2f564d9accb08cdf970e Mon Sep 17 00:00:00 2001 From: David Feng Date: Sat, 25 Jun 2016 12:26:47 +0800 Subject: [PATCH 35/50] lua_pushfstring: 'L' -> 'I' --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 8227850..8dfc769 100644 --- a/manual.html +++ b/manual.html @@ -3849,7 +3849,7 @@

      4.8 – 函数和类型

      '%%' (插入一个字符 '%'), '%s' (插入一个带零终止符的字符串,没有长度限制), '%f' (插入一个 lua_Number), -'%L' (插入一个 lua_Integer), +'%I' (插入一个 lua_Integer), '%p' (插入一个指针或是一个十六进制数), '%d' (插入一个 int), '%c' (插入一个用 int 表示的单字节字符),以及 From ac7604a850e0f8dea3668b01ce169f6b932ad03f Mon Sep 17 00:00:00 2001 From: Robbie Cao Date: Thu, 19 Jan 2017 01:37:49 +0800 Subject: [PATCH 36/50] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=83=A8=E5=88=86?= =?UTF-8?q?=E5=85=B3=E4=BA=8E=E5=85=83=E8=A1=A8=E7=9A=84=E7=BF=BB=E8=AF=91?= =?UTF-8?q?=E6=8C=89=E5=8E=9F=E6=96=87=E7=9B=B4=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Robbie Cao --- manual.html | 77 ++++++++++++++++++++++++++--------------------------- 1 file changed, 38 insertions(+), 39 deletions(-) diff --git a/manual.html b/manual.html index 8dfc769..345580c 100644 --- a/manual.html +++ b/manual.html @@ -307,19 +307,25 @@

      2.4 – 元表及元方法

      -元表中的键对应着不同的 事件 名; +在元表中事件的键值是一个双下划线(__)加事件名的字符串; 键关联的那些值被称为 元方法。 -在上面那个例子中引用的事件为 "add" , -完成加操作的那个函数就是元方法。 +在上一个例子中,__add 就是键值, +对应的元方法是执行加操作的函数。

      你可以用 getmetatable 函数 来获取任何值的元表。 +Lua 使用直接访问的方式从元表中查询元方法(参见rawget)。 +所以,从对象 o 中获取事件 ev 的元方法等价于下面的代码: + +

      +     rawget(getmetatable(o) or {}, "__ev")
      +

      -使用 setmetatable +你可以使用 setmetatable 来替换一张表的元表。在 Lua 中,你不可以改变表以外其它类型的值的元表 (除非你使用调试库(参见§6.10)); 若想改变这些非表类型的值的元表,请使用 C API。 @@ -343,19 +349,6 @@

      2.4 – 元表及元方法

      (参见§2.5)时调用它。 -

      -接下来会给出一张元表可以控制的事件的完整列表。 -每个操作都用对应的事件名来区分。 -每个事件的键名用加有 '__' 前缀的字符串来表示; -例如 "add" 操作的键名为字符串 "__add"。 -注意、Lua 从元表中直接获取元方法; -访问元表中的元方法永远不会触发另一次元方法。 -下面的代码模拟了 Lua 从一个对象 obj 中获取一个元方法的过程: - -

      -     rawget(getmetatable(obj) or {}, "__" .. event_name)
      -
      -

      对于一元操作符(取负、求长度、位反), 元方法调用的时候,第二个参数是个哑元,其值等于第一个参数。 @@ -364,10 +357,16 @@

      2.4 – 元表及元方法

      这个行为有可能在将来的版本中移除。 (使用这个额外参数的行为都是不确定的。) +

      +接下来是元表可以控制的事件的详细列表。 +每个操作都用对应的事件名来区分。 +每个事件的键名用加有 '__' 前缀的字符串来表示; +例如 "add" 操作的键名为字符串 "__add"。 +

        -
      • "add": +
      • __add: + 操作。 如果任何不是数字的值(包括不能转换为数字的字符串)做加法, @@ -381,49 +380,49 @@

        2.4 – 元表及元方法

        如果找不到元方法,将抛出一个错误。
      • -
      • "sub": +
      • __sub: - 操作。 行为和 "add" 操作类似。
      • -
      • "mul": +
      • __mul: * 操作。 行为和 "add" 操作类似。
      • -
      • "div": +
      • __div: / 操作。 行为和 "add" 操作类似。
      • -
      • "mod": +
      • __mod: % 操作。 行为和 "add" 操作类似。
      • -
      • "pow": +
      • __pow: ^ (次方)操作。 行为和 "add" 操作类似。
      • -
      • "unm": +
      • __unm: - (取负)操作。 行为和 "add" 操作类似。
      • -
      • "idiv": +
      • __idiv: // (向下取整除法)操作。 行为和 "add" 操作类似。
      • -
      • "band": +
      • __band: & (按位与)操作。 行为和 "add" 操作类似, @@ -431,37 +430,37 @@

        2.4 – 元表及元方法

        (参见 §3.4.3)尝试取元方法。
      • -
      • "bor": +
      • __bor: | (按位或)操作。 行为和 "band" 操作类似。
      • -
      • "bxor": +
      • __bxor: ~ (按位异或)操作。 行为和 "band" 操作类似。
      • -
      • "bnot": +
      • __bnot: ~ (按位非)操作。 行为和 "band" 操作类似。
      • -
      • "shl": +
      • __shl: << (左移)操作。 行为和 "band" 操作类似。
      • -
      • "shr": +
      • __shr: >> (右移)操作。 行为和 "band" 操作类似。
      • -
      • "concat": +
      • __concat: .. (连接)操作。 行为和 "add" 操作类似, @@ -469,7 +468,7 @@

        2.4 – 元表及元方法

        也不是数字(数字总能转换为对应的字符串)的情况下尝试元方法。
      • -
      • "len": +
      • __len: # (取长度)操作。 如果对象不是字符串,Lua 会尝试它的元方法。 @@ -480,7 +479,7 @@

        2.4 – 元表及元方法

        其它情况,均抛出错误。
      • -
      • "eq": +
      • __eq: == (等于)操作。 和 "add" 操作行为类似, @@ -489,7 +488,7 @@

        2.4 – 元表及元方法

        调用的结果总会被转换为布尔量。
      • -
      • "lt": +
      • __lt: < (小于)操作。 和 "add" 操作行为类似, @@ -497,7 +496,7 @@

        2.4 – 元表及元方法

        调用的结果总会被转换为布尔量。
      • -
      • "le": +
      • __le: <= (小于等于)操作。 和其它操作不同, @@ -508,7 +507,7 @@

        2.4 – 元表及元方法

        而其它比较操作符类似,其结果会被转换为布尔量。
      • -
      • "index": +
      • __index: 索引 table[key]。 当 table 不是表或是表 table 中不存在 @@ -524,7 +523,7 @@

        2.4 – 元表及元方法

        所以这次索引有可能引发另一次元方法。)
      • -
      • "newindex": +
      • __newindex: 索引赋值 table[key] = value 。 和索引事件类似,它发生在 @@ -550,7 +549,7 @@

        2.4 – 元表及元方法

        来做赋值。)
      • -
      • "call": +
      • __call: 函数调用操作 func(args)。 当 Lua 尝试调用一个非函数的值的时候会触发这个事件 From a008d31634af63b9c0f22d4568bc30f7e5384afd Mon Sep 17 00:00:00 2001 From: muzuiget Date: Tue, 8 Aug 2017 16:28:31 +0800 Subject: [PATCH 37/50] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E7=AD=89=E5=AE=BD=E5=AD=97=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manual.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.css b/manual.css index 1897b6f..302609e 100644 --- a/manual.css +++ b/manual.css @@ -5,7 +5,7 @@ h3 code { pre, code { font-size: 12pt ; - font-family: Verdana, Geneva, sans-serif !important; + font-family: Consolas,"Liberation Mono",Menlo,Courier,monospace; } span.apii { From 4b68cec2da9c9d800487dbdee4dee7742a1b0d42 Mon Sep 17 00:00:00 2001 From: ouliuquan Date: Sun, 30 Sep 2018 16:01:50 +0800 Subject: [PATCH 38/50] Fix the https link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index db37e07..6297874 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ Lua 5.3 手册中文版 -http://cloudwu.github.io/lua53doc +https://cloudwu.github.io/lua53doc From 20ca72b7b929d9f72734a668e1426d50a33bfb0c Mon Sep 17 00:00:00 2001 From: nratel Date: Thu, 18 Oct 2018 18:46:32 +0800 Subject: [PATCH 39/50] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=BC=B1=E8=A1=A8?= =?UTF-8?q?=E9=83=A8=E5=88=86=E7=9A=84=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 按原文看,貌似是翻译反了。 原文: http://www.lua.org/manual/5.3/manual.html#2.5.2 中,第二段第二句。 A table with weak values allows the collection of its values, but prevents the collection of its keys. --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 8dfc769..2853a05 100644 --- a/manual.html +++ b/manual.html @@ -694,7 +694,7 @@

        2.5.2 – 弱表

        一张弱表可以有弱键或是弱值,也可以键值都是弱引用。 -仅含有弱键的表允许收集器回收它的键,但会阻止对值所指的对象被回收。 +含有弱值的表允许收集器回收它的值,但会阻止收集器回收它的键。 若一张表的键值均为弱引用, 那么收集器可以回收其中的任意键和值。 任何情况下,只要键或值的任意一项被回收, From 2990585077bd379269d00812b62f78da55d0b5fe Mon Sep 17 00:00:00 2001 From: Cloud Wu Date: Tue, 18 Dec 2018 16:03:33 +0800 Subject: [PATCH 40/50] fix #53 --- manual.html | 4 ---- 1 file changed, 4 deletions(-) diff --git a/manual.html b/manual.html index e588445..b9f2287 100644 --- a/manual.html +++ b/manual.html @@ -8618,10 +8618,6 @@

        6.8 – 输入输出库

        就中止函数运行,返回 nil
      • -
      • "i": -读取一个整数,返回整数值。 -
      • -
      • "a": 从当前位置开始读取整个文件。 如果已在文件末尾,返回空串。 From 2c888612a1ea2e48d1111aa5639da10e59976c76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=80=E8=90=8C=E5=B0=8F=E6=B1=90?= Date: Wed, 26 Dec 2018 14:58:20 +0800 Subject: [PATCH 41/50] =?UTF-8?q?=E9=94=99=E5=88=AB=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index b9f2287..785f52c 100644 --- a/manual.html +++ b/manual.html @@ -6880,7 +6880,7 @@

        6.2 – 协程管理

        以字符串形式返回协程 co 的状态: 当协程正在运行(它就是调用 status 的那个) ,返回 "running"; 如果协程调用 yield 挂起或是还没有开始运行,返回 "suspended"; -如果协程是活动的,都并不在运行(即它正在延续其它协程),返回 "normal"; +如果协程是活动的,但并不在运行(即它正在延续其它协程),返回 "normal"; 如果协程运行完主体函数或因错误停止,返回 "dead"。 From 7fa04351a648157d104864b333d35a8d26507051 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=80=E8=90=8C=E5=B0=8F=E6=B1=90?= Date: Wed, 26 Dec 2018 15:27:14 +0800 Subject: [PATCH 42/50] =?UTF-8?q?=E5=BC=BA=E8=B0=83io.tmpfile()=E4=B8=8D?= =?UTF-8?q?=E4=B8=80=E5=AE=9A=E6=88=90=E5=8A=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 英文文档有 "In case of success" 这句话,应该是后来特意加上去的 --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 785f52c..03d65a0 100644 --- a/manual.html +++ b/manual.html @@ -8514,7 +8514,7 @@

        6.8 – 输入输出库

        -返回一个临时文件的句柄。 +如果成功,返回一个临时文件的句柄。 这个文件以更新模式打开,在程序结束时会自动删除。 From adac2c19217b4f7857748705b0f976962c0767b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=80=E8=90=8C=E5=B0=8F=E6=B1=90?= Date: Wed, 26 Dec 2018 15:32:27 +0800 Subject: [PATCH 43/50] =?UTF-8?q?=E5=A4=9A=E4=BA=86=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 785f52c..592ab41 100644 --- a/manual.html +++ b/manual.html @@ -8659,7 +8659,7 @@

        6.8 – 输入输出库

        • "set": 基点为 0 (文件开头);
        • -
        • "cur": 基点为当前位置了;
        • +
        • "cur": 基点为当前位置;
        • "end": 基点为文件尾;

        seek 成功时,返回最终从文件开头计算起的文件的位置。 From 4c753e9c5fbf81a68ddc1691bf2fc7d25d0936c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=80=E8=90=8C=E5=B0=8F=E6=B1=90?= Date: Wed, 26 Dec 2018 15:38:45 +0800 Subject: [PATCH 44/50] =?UTF-8?q?=E6=BC=8F=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 785f52c..b0e2053 100644 --- a/manual.html +++ b/manual.html @@ -8697,7 +8697,7 @@

        6.8 – 输入输出库

      • "line": 行缓冲; -输出将到每次换行前, +输出将缓冲到每次换行前, 对于某些特殊文件(例如终端设备)缓冲到任何输入前。
      • From f21f8693ead147e73000cc720c215db0b52bfc99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=80=E8=90=8C=E5=B0=8F=E6=B1=90?= Date: Wed, 26 Dec 2018 16:27:17 +0800 Subject: [PATCH 45/50] =?UTF-8?q?=E9=94=99=E5=88=AB=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index b1334ec..26b2ad0 100644 --- a/manual.html +++ b/manual.html @@ -7890,7 +7890,7 @@

        6.5 – UTF-8 支持


        utf8.codepoint (s [, i [, j]])

        -一整数形式返回 s 中 +以整数形式返回 s 中 从位置 ij 间(包括两端) 所有字符的编号。 默认的 i 为 1 ,默认的 ji。 From 2967d56ddf42cb482d82de942ba7eef0ae3f83c8 Mon Sep 17 00:00:00 2001 From: farteryhr Date: Thu, 31 Oct 2019 13:25:42 +0800 Subject: [PATCH 46/50] close tag --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 26b2ad0..01cf2ad 100644 --- a/manual.html +++ b/manual.html @@ -9505,7 +9505,7 @@

        8.2 – 库的变更

        数学库中的这些函数废弃了: atan2coshsinhtanhpowfrexp, 以及 ldexp 。 -你可以用 x^y 替换 math.pow(x,y); +你可以用 x^y 替换 math.pow(x,y); 你可以用 math.atan 替换 math.atan2,前者现在可以接收一或两个参数; 你可以用 x * 2.0^exp 替换 math.ldexp(x,exp)。 若用到其它操作,你可以写一个扩展库,或在 Lua 中实现它们。 From 30fad82736459748fd79fbca07800ba81a3907a1 Mon Sep 17 00:00:00 2001 From: Shu Shuxin Date: Tue, 14 Apr 2020 17:07:24 +0800 Subject: [PATCH 47/50] =?UTF-8?q?=E4=BF=AE=E6=94=B94470=E8=A1=8C:=20`?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E8=BF=94=E5=9B=9ENULL`=20=E4=B8=BA=20`?= =?UTF-8?q?=E8=BF=94=E5=9B=9ENULL`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 01cf2ad..719e10f 100644 --- a/manual.html +++ b/manual.html @@ -4467,7 +4467,7 @@

        4.8 – 函数和类型

        如果 len 不为 NULL , 它还把字符串长度设到 *len 中。 这个 Lua 值必须是一个字符串或是一个数字; -否则返回返回 NULL 。 +否则返回 NULL 。 如果值是一个数字, lua_tolstring 还会 把堆栈中的那个值的实际类型转换为一个字符串。 (当遍历一张表的时候, From 37955e176f158a443965683bdf88b47512141eda Mon Sep 17 00:00:00 2001 From: Shu Shuxin Date: Fri, 9 Oct 2020 14:30:44 +0000 Subject: [PATCH 48/50] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E7=9A=84otherwise?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 删除多余的otherwise --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index 719e10f..a9800d0 100644 --- a/manual.html +++ b/manual.html @@ -8813,7 +8813,7 @@

        6.9 – 操作系统库

        这个函数等价于 ISO C 函数 system。 它调用系统解释器执行 command。 如果命令成功运行完毕,第一个返回值就是 true, -否则是 nil otherwise。 +否则是 nil。 在第一个返回值之后,函数返回一个字符串加一个数字。如下:
          From 992f4129f0c744b20a11440c32a6a5371b2d224b Mon Sep 17 00:00:00 2001 From: Shion Ryuu Date: Mon, 14 Dec 2020 23:09:33 +0800 Subject: [PATCH 49/50] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97=EF=BC=8C=E8=AE=B2->=E5=B0=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index a9800d0..c6f4628 100644 --- a/manual.html +++ b/manual.html @@ -6122,7 +6122,7 @@

          5.1 – 函数和类型

          如果 glb 为真, -同时也讲模块设到全局变量 modname 里。 +同时也将模块设到全局变量 modname 里。

          From 2c54149fb484ee7c5443694db4160df2b538add6 Mon Sep 17 00:00:00 2001 From: Shion Ryuu Date: Wed, 16 Dec 2020 08:06:35 +0800 Subject: [PATCH 50/50] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E7=9A=84=E5=9C=A8=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manual.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual.html b/manual.html index c6f4628..6282802 100644 --- a/manual.html +++ b/manual.html @@ -4203,7 +4203,7 @@

          4.8 – 函数和类型

          在发生错误的情况下, 堆栈没有展开, 因此你可以使用调试 API 来处理它。 -错误消息放在栈顶在。 +错误消息放在栈顶。