Lua
文章平均质量分 80
alenliu0621
随风飘飘天地任逍遥~~~
展开
-
《Lua 5.1 Reference Manual》重点
《Lua 5.1 Reference Manual》重点,方便自己查阅~原创 2019-07-20 20:09:52 · 743 阅读 · 0 评论 -
Lua 程序设计:协程
文章目录协程基础生产者和消费者问题协程一个协程(coroutine)与线程(thread,这里指“多线程”中的线程)类似:它是一个执行序列,拥有自己的栈,局部变量,指令指针,但是与其他的协程共享全局变量和其他大部分东西。从概念上讲,协程与线程最大的区别是:在一个多处理器机器上,一个多线程程序可以并行地执行多个线程。而协程是协作性的,一个程序任意时刻只能执行一个协程,并且只有这个协程在显示地要求挂起时,它的执行才会暂停。基础Lua 将所有协程的函数放在一个名为 “coroutine” 的 table原创 2019-08-18 16:40:36 · 665 阅读 · 0 评论 -
Lua 程序设计:元表和元方法
文章目录元表与元方法算术类和关系类的元方法table 访问的元方法__index 元方法__newindex 元方法具有默认值的 table跟踪 table 的访问只读的 table元表与元方法通常,Lua 中的每个值都有一套预定义的操作集合。例如,可以将数字相加,可以连接字符串,还可以在 table 中插入一对 key-value 等。但是我们无法将两个 table 相加,无法对函数做比较,也无法调用一个字符串。但是我们可以通过元表来修改一个值的行为,使其执行一个非预定义的操作时能执行一个指定的操原创 2019-09-08 15:29:31 · 441 阅读 · 0 评论 -
Lua 程序设计:环境
文章目录环境具有动态名字的全局变量全局变量的声明非全局的环境环境Lua 将所有的全局变量保存在一个常规的 table 中,这个 table 称为环境。Lua 将环境 table 自身保存在一个全局变量 _G 中(_G._G 等于 _G)。例如,使用以下代码就可以打印当前环境中所有全局变量的名称:for n in pairs(_G) do print(n) end具有动态名字的全局变量对于访问和设置全局变量,通常赋值操作就可以了。不过,有时候会用到一些元编程的形式。比如,想访问一个全局变量,而它的原创 2019-09-08 17:38:18 · 325 阅读 · 0 评论 -
Lua 程序设计:模块与包
文章目录模块与包require 函数搜索路径编写模块的基本方法使用环境子模块与包模块与包从用户观点看,一个模块就是一些代码(Lua 或 C 代码),可以使用 require 函数加载这些代码,然后创建并返回一个 table 。这个 table 就是一个名称空间(namespace),其中包含模块导出的所有东西,比如函数和常量。例如,所有的标准库都是模块。可以以如下的方式使用数学库:local m = require "math"print(m.sin(3.14))然而,Lua 会以如下的方式预原创 2019-09-09 23:34:37 · 1401 阅读 · 0 评论 -
Lua 程序设计:C API 概述
文章目录C API 概述第一个示例栈压入元素查询元素其他栈操作C API 概述Lua 是一种嵌入式语言,即 Lua 不是一个单独运行的程序,而是一个可以嵌入到其他程序的库,通过链接就可以将 Lua 的功能合并到这些程序。Lua 使用解释器来执行 Lua 程序,解释器是一个简单的应用程序,它依靠 Lua 库来实现主要功能。这种使用一个库来扩展应用程序的能力使得 Lua 成为一种扩展语言(extension)。与此同时,使用 Lua 的应用程序可以在 Lua 环境中注册新的函数。这些函数使用 C (或其他原创 2019-09-15 17:35:23 · 668 阅读 · 0 评论 -
Lua 程序设计:扩展应用程序
文章目录扩展应用程序基础table 操作调用 Lua 函数扩展应用程序Lua 的一项重要用途是作为一种配置语言(configuration language )。本章将介绍如何用 Lua 来配置一个程序。将从一个简单的例子开始,逐步地扩展它,使其完成更复杂的任务。基础作为我们的第一个任务,让我们假设一个简单的场景:你的 C 程序有一个窗口,你想让用户能够指定初始的窗口大小。很显然,对于这些简单的任务,有许多比使用 Lua 更简单的选择,比如使用环境变量或者包含名字-值对的文件。但是,仅仅只使用一个文原创 2019-09-16 23:34:01 · 432 阅读 · 0 评论 -
Lua 程序设计:从 Lua 中调用 C 函数
文章目录从 Lua 中调用 C 函数C 函数C 模块从 Lua 中调用 C 函数扩展 Lua 的一项基本含义就是,应用程序可以注册新的 C 函数到 Lua 中。当我们说 Lua 能够调用 C 函数,并不是意味着 Lua 能够调用任意的 C 函数。在上一章中,我们说过当从 C 语言中调用 Lua 函数时,必须遵循一个简单的协议向 Lua 传递参数以及获取返回结果。同样,对于一个能被从 Lua 调用的 C 函数,它也必须遵循一个获取参数和返回结果的协议。此外,还必须注册这个 C 函数,也就是将以某种方式原创 2019-09-21 18:08:53 · 626 阅读 · 0 评论