摘要:
本文转自:http://www.cnblogs.com/whiteyun/archive/2009/09/02/1541043.html在string库中功能最强大的函数是:string.find(字符串查找)string.gsub(全局字符串替换)string.gfind(全局字符串查找)string.gmatch(返回查找到字符串的迭代器)这些函数都是基于模式匹配的。与其他脚本语言不同的是,Lua并不使用POSIX规范的正则表达式[4](也写作regexp)来进行模式匹配。主要的原因出于程序大小方面的考虑:实现一个典型的符合POSIX标准的regexp大概需要4000行代码,这比整个Lua 阅读全文
posted @ 2012-08-05 15:02
Kinel
阅读(697)
评论(0)
推荐(0)
摘要:
lua中有一个全局的表,_G,这个表包含了所有的全局变量.例如:a = 123;d = {a,444};这样的两个变量实际上就会被lua存储到_G表中去.也就是说_G["a"]就是变量a._G["a"] = _G["d"];这样的语句和a=d;是完全一样的.当然,既然_G也是一个表,那么我们就可以设置_G表的__index等函数来达到控制_G表的访问权限了.当然我们也可以用__newindex来防止创建新的全局变量(至于怎么做:只要在函数里调用error()函数来输出一个错误就行了,这样就可以避免创建新的全局变量,但是一般没必要这么做 阅读全文
posted @ 2012-08-05 14:21
Kinel
阅读(5756)
评论(0)
推荐(0)
摘要:
table是lua中的唯一的一个数据结构.而且,table中的数据可以是任意类型的,当然也可以是函数类型.例如:a = {};-->声明一个tablea[1] = function() print("a"); end; -->这样就给a[1]赋予了一个函数.也就是说,table里可以存储各种各样的东西.同时如果a[2] = a;-->这也是可行的,但是注意,lua中的这种赋值用法得到的结果其实是: a[2]是a的引用,而并非把a的内容都复制给a[2].也就是说,一个table中既可以有数据,也可以有函数.而Metatables(元表)其实也是一个table 阅读全文
posted @ 2012-08-05 13:49
Kinel
阅读(351)
评论(0)
推荐(0)