
Lua
文章平均质量分 55
CCCCCCCCCAO
立志,改变中国软件业的格局!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
080625 - Curses 惊魂
今天要交付7寸笔记本测试程序的第二版。这是我这一个月来主要工作所在。我采用lua+curses库的方法,对其界面和操作方式进行了大胆地改进,效果非常不错。开始,我用的是 luacurses封装,使用其来开发的过程中就发现一些细节问题,觉得是这个库不完善所致,想不到最关键的一个BUG就在今天凸现出来,运行到一半的时候,整个程序segmentation fault挂了,这样一种严重的错误,真是恐怖。当原创 2008-06-30 14:16:00 · 1029 阅读 · 0 评论 -
对Lua的喜爱
对Lua的喜爱,绝不仅仅是语法的简单。而是对其设计思想的认同,对其设计哲学的共鸣。Lua将配置与代码统一处理,这是一个相当大的优势。这样就不用为每种配置文件单独写词法语法分析了。为系统的统一性铺平了道路。设想如果有一个完全用Lua脚本做配置文件的Linux系统(或者另一个系统),那Linux上的开发者就不用为太多的配置文件语法头疼了。Lua认定与C语言强力嵌合,充分利用了现成的浩瀚杰出的C代码。本原创 2008-12-01 22:26:00 · 1765 阅读 · 1 评论 -
Lua Module对全局变量访问
2008年12月9日今天下午调试程序的时候,遇到了一件非常奇怪的事。弄清楚了之后,才发现原来是Lua中Module中自有环境的问题。大体情况是这样的,我在主程序中设定的全局变量,在模块文件中可以访问到,并修改了这个全局变量的值,但是在模块调用返回后,再次使用这个全局变量的值,发现它没有被赋值,没有被改变。究其原因,发现是因为Lua的模块里面,采用了自己的全局环境(这个全局环境会将主程序中的全局环境原创 2008-12-09 20:49:00 · 14941 阅读 · 2 评论 -
Lua的语法缺失及替代措施
Lua的一个设计方针是简单,能不加入的语言特性就尽量不加入。于是,Lua中缺少了一些我们常用的语法。下面仅以C语言做参考。缺少continue语句,虽然对逻辑实现没本质影响。但让我们在编程时,代码结构的写法有一些生硬的感觉,不灵活。缺少了switch-case语法,仅用if-elseif-else来替代,在选项比较多的时候,代码很难看,而且效率很低。没有逻辑运算符 AND, OR, NOT ,这在原创 2008-12-10 09:05:00 · 16933 阅读 · 2 评论 -
Lua中没有返回语句的function会返回什么?
结论:在Lua中,没有包含返回语句的function在调用时,返回值是 nil。示例代码如下function run() local a = 10 -- return aendret = run()if ret == "" then print("Return null string.")elseif ret == nil then prin原创 2008-12-11 14:33:00 · 5820 阅读 · 0 评论 -
Lua中的面向对象实现探讨
元表概念Lua中,面向对向是用元表这种机制来实现的。元表是个很“道家”的机制,很深遂,很强大,里面有一些基本概念比较难理解透彻。不过,只有完全理解了元表,才能对Lua的面向对象使用自如,才能在写Lua代码的高级语法时游刃有余。首先,一般来说,一个表和它的元表是不同的个体(不属于同一个表),在创建新的table时,不会自动创建元表。但是,任何表都可以有元表(这种能力是存在的)。e.g.t = {}p原创 2008-12-17 08:30:00 · 12990 阅读 · 5 评论 -
给Lua添加新的C模块(.so文件)
今天,我给我的测试软件框架添加了一个C模块,里面封装了一个sleep的系统调用。我的目的是在用Lua时,要延时的话,不用执行os.execute("sleep 5") 之类的蹩脚语句,而替之以mt.sleep(5)之类的就行了。我是这样来做到的。看如下源文件,注意里面的注释。原创 2009-08-27 21:55:00 · 10752 阅读 · 0 评论 -
Lua编程语言简介(slide)
这是我写的一个Lua编程语言简介,因为对Lua的理解一直在加深,所以这个文档一直在更新了。 http://docs.google.com/present/view?id=ddtqv79s_91f56s88dm原创 2009-08-27 21:58:00 · 1919 阅读 · 3 评论