Lua语法小贴士
文章平均质量分 54
介绍Lua的一些语法小知识,让你编程起来更加得心应手。
凯奥斯
可能是最不会写注释的程序员。
展开
-
Lua语法小贴士(十六)pairs和next
今天看到一个帖子,是关于lua优化的,上面说清空一个表的时候,pairs的效率是next的500倍。我记得for pairs循环实际上就是调用的就是next,还特意查了源码,应证了我的记忆。源码就不贴了,直接给结论。原创 2017-09-14 12:10:29 · 5460 阅读 · 1 评论 -
Lua语法小贴士(十五)upvalue
我们都知道,Lua里面的function实际上都是闭包(closure),而upvalue便是它引用到的上下文变量(“引用到”三个字很关键),业界一般又称为外部局部变量(external local variable),如果要翻译的话,个人偏好翻译为“上文变量”。原创 2017-09-08 11:29:05 · 3128 阅读 · 0 评论 -
Lua语法小贴士(十四)垃圾回收collectgarbage
Lua垃圾回收只有一个函数collectgarbage,第一个参数是字符串,代表操作类型,第二个参数只有某些操作有,是该操作所需要的参数。原创 2016-11-24 22:17:30 · 15269 阅读 · 0 评论 -
Lua语法小贴士(十三)可变参数与unpack
Lua支持可变参数,用...表示。另外Lua里面可以使用unpack函数将数组形式的table拆开。原创 2016-11-23 22:40:49 · 8002 阅读 · 0 评论 -
Lua语法小贴士(十二)loadstring和loadfile
Lua里面可以使用loadstring来加载一个字符串,字符串中包含了lua脚本。Lua里面还可以使用loadfile,可以加载一个lua文件。原创 2016-11-22 22:30:11 · 7274 阅读 · 0 评论 -
Lua语法小贴士(十一)debug库
Lua的调试库包含两种函数:自省函数和钩子。自省函数可以用来检查一个正在运行的程序的信息,而钩子可以跟踪程序的运行。原创 2016-11-05 23:50:19 · 8982 阅读 · 0 评论 -
Lua语法小贴士(十)全局变量
Lua里我们可以随时声明或调用全局变量。虽然很方便,但是往往会因为拼写错误而导致一些不容易发现的BUG。Lua可以使用_G来表示全局变量所在的表,这样我们就可以修改_G表的__index和__newindex两个元方法(参考Lua语法小贴士(五)元表与元方法)来限制全局变量的访问。原创 2016-11-04 22:44:09 · 1166 阅读 · 0 评论 -
Lua语法小贴士(九)table库
table库方法包括:concat,insert,maxn,remove和sort。原创 2016-11-02 22:46:38 · 985 阅读 · 0 评论 -
Lua语法小贴士(八)协同程序
Lua在主线程之外还可以运行一个协同程序。可以通过coroutine的create方法创建一个协同程序,会在yield方法的地方暂停,然后调用resume方法时继续执行。通过使用协程可以把多个方法以可控的方式运行。原创 2016-11-01 22:33:52 · 1220 阅读 · 0 评论 -
Lua语法小贴士(七)错误处理
本文要介绍的Lua错误处理包括assert、pcall/xpcall以及debug.traceback。原创 2016-10-28 11:16:38 · 1298 阅读 · 0 评论 -
Lua语法小贴士(六)迭代器
Lua里面可以使用for in语句来遍历table,一般会使用内置的ipairs或pairs方法,而这两个方法会返回迭代器(关于迭代器的相关理论知识,参考小话设计模式(十五)迭代器模式)。本文就介绍一下如何自定义迭代器。原创 2016-10-27 14:10:23 · 861 阅读 · 0 评论 -
Lua语法小贴士(五)元表与元方法
Lua里的元表(metatable)是指一套预定操作的集合,而这些操作称为元方法(metamethod)。例如我们可以让两个数字相加,但是却没办法将两个table相加。如果想让表a加上表b,那么就需要使用元表里的__add元方法。原创 2016-10-19 13:59:08 · 1104 阅读 · 1 评论 -
Lua语法小贴士(四)字符串缓冲
我们在写Lua代码的时候,如果需要对一个字符串进行反复的连接操作的话,会造成极大的性能开销。因为字符串是不可变的值,所以当我们对字符串操作的时候,每次都会生成一个新的字符串。例如我们需要对一个10000字节的字符串str增加一个字符的时候,就会创建一个10001字节的字符串str_copy,然后再复制str到str_copy里面。所以我们需要字符串缓冲(string buffer)来解决这个问题,而Lua里面,string buffer就可以使用table来实现。原创 2016-10-11 13:53:31 · 1285 阅读 · 0 评论 -
Lua语法小贴士(三)魔法字符
介绍Lua里的魔法字符,用来对字符串进行模式匹配。原创 2016-10-11 11:48:26 · 4296 阅读 · 0 评论 -
Lua语法小贴士(二)string库
Lua语言string库方法介绍。原创 2016-10-11 11:25:31 · 2268 阅读 · 0 评论 -
Lua语法小贴士(一)字符串基础操作
字符串是Lua里面非常常用的类型,本文就介绍一下字符串的一些相关操作。原创 2016-10-10 13:38:28 · 16033 阅读 · 0 评论