医生零基础lua语言入门教学视频

  • 名称:医生零基础lua语言入门教
  • 分类:程序设计  
  • 观看人数:加载中
  • 时间:2014/7/30 22:11:58
 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语言是静态类型的。