• 名称:医生零基础lua语言入门教学视频
  • 分类:程序设计
  • 观看人数:加载中...
  • 时间:2014-07-30 22:11
 Lua 是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
 Lua语言的一个很大的特点是它的基于关联表的设计。Roberto教授认为Lisp/Scheme的基于List的设计给了他很大的启发。但是List只适合于函数式编程语言,所以他选择了table。Lua的所有的全局变量都是存在一个名字叫_G的关联表中。比如下面的代码可以打印出当前执行环境中所有的全局变量。
    for n in pairs(_G) do print(n) end
Lua的模块也是基于关联表的。Lua的关联表还能用来模拟实现面向对象编程。当然,由于关联表其实就是{name-object}对,所以它没有拜候控制机制。按照Roberto教授的说法,Lua只是设计为小型嵌入式编程,如果想不拜候对象的私有数据,你不拜候它就是了。
    Lua另一个给我较深印象的是它和C语言的接口。Lua、Ruby等语言都有本身的垃圾收集机制,所以需要语言本身的运行时环境来办理内存。这样在和C语言交互的时候,内存办理就很麻烦。Ruby在这方面应该做的不好。比来几年RoR很流行,很多网站都是基于Ruby编写的。由于Ruby最初的定位可能也是小型应用,没想到现在用到了办事器端,需要7×24小时运行。所以Ruby的内存泄漏问题被放大了。Lua通过定义了一个虚拟栈来和C语言交互,所有的数据交互都通过这个栈来完成。这个栈解决了两个问题,一个是Lua使用垃圾收集而C语言要本身办理内存,另一个是Lua使用动态类型而C语言是静态类型的。