博客专栏  >  编程语言   >  快速掌握Lua 5.3

快速掌握Lua 5.3

以"Q & A"的形式介绍Lua的知识点,以理论与实践相结合的方式力图快速掌握Lua。

关注
8 已关注
34篇博文
  • 快速掌握Lua 5.3 —— 资源管理

    Q:Lua的”finalizer”? A:在我们之前看到的使用”userdata”的例子中,我们只关心如何创建并使用”userdata”,从未关心何时以及如何释放我们创建的”userdata”,因为...

    2016-05-22 21:21
    4009
  • 快速掌握Lua 5.3 —— 调试库 (2)

    Q:如何调试”Closure”的”upvalue”信息? A: --[[ debug.getupvalue(f, up) 返回函数("Closure")"f"的第"up"个"upvalue...

    2016-05-08 16:40
    1007
  • 快速掌握Lua 5.3 —— 调试库 (1)

    Q:什么是活动函数? ---------- A:程序中被调用但还未执行完成的函数。 ``` function g() --[[ 此时函数"g"被调用但还未执行完成,是活动函数。所以这里获取的是...

    2016-05-08 16:39
    878
  • 快速掌握Lua 5.3 —— userdata (2)

    Q:如何使用"userdata"的"metamethods"? A:我们继续来修改上一节中的例子,这次我们的目标是使用面向对象的方式调用"userdata"的方法。这个目标既可以在Lua中实现,也可以...

    2016-05-08 10:51
    566
  • 快速掌握Lua 5.3 —— userdata (1)

    Q:什么是"userdata"? A:"userdata"分为两类,"full userdata"和"light userdata"。Lua使用他们来表示C中一些特殊的类型。前面的章节中,我们看到了如...

    2016-05-08 10:45
    916
  • 快速掌握Lua 5.3 —— 编写提供给Lua使用的C库函数的技巧 (2)

    Q:什么是”registry”? A:有时候,我们需要在程序中使用一些非局部的变量。在C中我们可以使用全局变量或是静态变量来实现,而在为Lua编写C库的过程中,使用以上类型的变量并不是一个好的方式。首...

    2016-04-24 17:23
    3512
  • 快速掌握Lua 5.3 —— 编写提供给Lua使用的C库函数的技巧 (1)

    Q:如何在C库函数中灵活的操作Lua的”table”?A:--[[ void lua_settable(lua_State *L, int index); 从虚拟栈中"index"处获得"t...

    2016-04-11 15:39
    1745
  • 快速掌握Lua 5.3 —— 从Lua中调用C函数

    Q:Lua调用C函数的两种方式? A: 1、程序主体在C中运行,C函数注册到Lua中。C调用Lua,Lua调用C注册的函数,C得到函数的执行结果。 2、程序主体在Lua中运行,C函数作为库函数供Lua...

    2016-04-03 23:09
    4461
  • 快速掌握Lua 5.3 —— 扩展你的程序 (2)

    Q:如何在C中调用Lua的函数? A: 1、将函数名入栈。 2、将参数按照形参的顺序依次入栈。 3、调用函数。此过程会将函数的参数出栈,调用完成后将函数的返回值入栈。 4、获取函数的返回值。...

    2016-03-21 13:58
    1168
  • 快速掌握Lua 5.3 —— 扩展你的程序 (1)

    Q:如何在C中将Lua作为配置文件语言使用? A: "config.lua"文件中: ``` -- window size width = 200 height = 300 ``` "main.c"文...

    2016-03-21 10:26
    821
  • 快速掌握Lua 5.3 —— Lua与C之间的交互概览

    Q:什么是Lua的虚拟栈? A:C与Lua之间通信关键内容在于一个虚拟的栈。几乎所有的调用都是对栈上的值进行操作,所有C与Lua之间的数据交换也都通过这个栈来完成。另外,你也可以使用栈来保存临时变量...

    2016-03-17 16:55
    1438
  • 快速掌握Lua 5.3 —— 操作系统库

    Q:与文件操作相关的库方法? A: --[[ os.remove(filename) 删除文件名为"filename"的文件,"filename"可以是一个普通文件或是一个空的目录。...

    2016-03-09 23:55
    1326
  • 快速掌握Lua 5.3 —— I/O库 (2)

    Q:什么是”Complete Model”? A:所有的文件操作都基于明确指定的文件句柄,可以同时打开多个文件句柄。这就意味着同一时间可以操作多个文件,对于每一个文件读或写均可。文件句柄等同于C语言...

    2016-03-04 00:04
    1152
  • 快速掌握Lua 5.3 —— I/O库 (1)

    Q:什么是”Simple Model”? A:所有的文件操作都基于一个默认的输入文件和一个默认的输出文件,这就意味着同一时间对于输入和输出来说,只可操作一个文件(默认的文件)。默认的输入文件初始化是...

    2016-03-01 22:27
    1162
  • 快速掌握Lua 5.3 —— 字符串库 (3)

    Q:什么情况下"pattern"会匹配空串? ---------------------- A:要小心的使用`*`和`-`,因为它们可以匹配零次。 ``` -- 如果你打算用"%a*"匹配单词,你会发...

    2016-02-21 22:47
    1294
  • 快速掌握Lua 5.3 —— 字符串库 (2)

    Q:模式匹配字符串的相关函数? A: --[[ string.find(s, pattern [, init [, plain]]) 在字符串"s"中查找第一个与匹配模式"patte...

    2016-02-21 13:53
    1236
  • 快速掌握Lua 5.3 —— 字符串库 (1)

    Q:对字符串操作的基本函数? A: --[[ string.byte(s [, i [, j]]) 依次返回字符串"s"中从"i"到"j"的字符的ASCII码。 "i"默认为1...

    2016-02-21 15:35
    1941
  • 快速掌握Lua 5.3 —— "table"库

    Q:如何向”table”中插入和删除元素?A:之前提到的,向”table”中插入元素使用索引的方式,而删除’table”中的元素则是将其赋为nil。这里介绍的是”table”库中提供的插入与删除函数,...

    2016-02-17 15:25
    965
  • 快速掌握Lua 5.3 —— "Weak Tables"以及数学库

    Q:“引用”和“引用计数”? -------------- A:“引用”既为对象的名字。比如`a = {}`,名叫`a`的变量存储的值是一个"table","table"的名字是`a`;同时还可以说变...

    2016-02-15 11:26
    742
  • 快速掌握Lua 5.3 —— 面向对象编程

    Q:如何在Lua中定义对象的方法以及调用对象的方法? A:面向对象的特殊性在于它以this指针的方式传递了对象本身,并且这种操作是隐藏起来的。 在Lua中使用:实现面向对象方式的调用。:只是一个语...

    2016-02-13 22:03
    808

img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部