
lua
wangqs1988
这个作者很懒,什么都没留下…
展开
-
lua学习小记(1)
决定学一门动态脚本语言,感受一下不受拘的coding,发现比较流行的又不是只能用来写网页的有python,lua,ruby等。lua兼具运行效率高,表达能力强的优点,成了我的首选。更何况“月亮”听起来要比“蟒蛇”和“红宝石”文艺多了。 这是第一篇,但我不知道会不会写第二篇。题目括号里的数字是1,因为lua里的数组下标习惯上是从1开始的,当然从-1234开始也没有错,但不建议在一个团原创 2012-02-06 18:02:00 · 338 阅读 · 0 评论 -
lua学习小记(2)
lua本身并没有提供OOP的机制,但可以通过表,元表,闭包这些强大的特性构造出OOP。在此介绍两种实现OOP的方法,来自《Lua程序设计(第2版)》(此书已绝版,淘宝上可以买到质量很不错的影印版。云风大侠在豆瓣读书上力荐此书)。 有一个名为Speak的类,它的唯一功能就是设计和输出它的成员变量s,以下用两种方法构建Speak及其对象speak。 1)通过闭包和表原创 2012-02-08 17:27:37 · 392 阅读 · 0 评论 -
单例对象的lua实现
前几天看了云风大侠用lua写的OOP模板,膜拜不已,用这个模板会让人误以为lua是显式支持OOP的,而感觉不到这是用lua现成的语法写就的模板。 不过个人还是抗拒用这个模板,因为一旦用这个模板实现OOP,就没法控制一些细节。尽管可以扩充这个模板,但总不如自己写的元表灵活。比如,这个模板不支持单例对象。 单例是一种很有用的设计模式。在OOP中会发现,在业务逻辑或是原创 2012-02-10 16:42:56 · 556 阅读 · 0 评论 -
Lua的一种二维数组表示法
《Lua程序设计》中介绍了两种方法: 1)用一维数组,也就是一个table模拟二维数组的行为。此方法性能不错,但实现起来略嫌麻烦。 2)table套table,类似于C语言的“指针的数组”,外层table的value是内层table的引用。此方法优劣反之。 其实在某些场景下,适合用方法2)的优化方案,例如:local DIR_ARRAY =原创 2012-02-12 19:52:19 · 1148 阅读 · 0 评论 -
情人节乃浮云——再谈单例对象的Lua实现
之前发了篇有失水准的文章,声称可以用文中的方法实现lua单例对象。 确实可以现实,但是太ugly了,体现不出lua之美,还附带命名污染。百科了下FP,遂想出一种更优雅的实现方案:Hello = {}function Hello:new() --private method. local store = nil return function(sel原创 2012-02-15 01:31:38 · 666 阅读 · 1 评论