程序猿世界(May.17)——打开Lua的大门(一)

0
Want create site? Find Free WordPress Themes and plugins.

大家好,这里是3366RT,咦?问我为什么写了两个栏目?这个嘛,在写六月份的稿子的时候被居正叫来填luo的编程坑啦,我讲的语言是Lua,也就是我做YGO专题时主要用到的语言,那么废话不多说,我们今天就来打开Lua的大门~

首先,我们要先知道:什么是Lua。

Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放(所以可以很容易的被C/C++ 代码调用,也可以反过来调用C/C++的函数), 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua是一门由巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成的研究小组在1993年开发的语言,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。我们其实能在很多地方看到Lua的身影,比如《魔兽世界》(它的插件是使用Lua编写的)、Adobe Photoshop Lightroom(后期版本部分由Lua实现,Lua代码占到代码总量的63%)、《仙剑五》(从游戏到脚本全程使用Lua)。

Lua的特性主要有以下几点:

  • 轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。
  • 可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。
  • 其它特性:
    • 支持面向过程(procedure-oriented)编程和函数式编程(functional programming);
    • 自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象;
    • 语言内置模式匹配;闭包(closure);函数也可以看做一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持;
    • 通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。

Lua主要应用于:

游戏开发

独立应用脚本

Web 应用脚本

扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench

安全系统,如入侵检测系统。

作为一门语言,Lua也是需要自己的编译环境的,本文就主要讲解Windows环境下的Lua环境安装,各位可以在http://www.runoob.com/lua/lua-environment.html上找到需要的安装包。

当安装完环境过后,我们就可以正式开始使用Lua编程了。(Win7下打开路径:开始菜单→所有程序→Lua→SciTE)

首先我们先来一个每个程序猿都会编的第一个程序:Hello World!

点击图中两个灰框旁边的那个像是命令提示符一样的图标,界面会变成这样子:

在界面内输入print(“Hello World!”)

按下回车键执行,如果代码正确的话,效果应该是这样的:

你可能会说“这个程序这么简单我早就会编了”之类的,但是有一点要注意:这个Lua系列的文章将会由简至深地讲解Lua,不可能一上来就是高难度的编程,毕竟要替刚接触编程的人着想嘛,那么我们这一期就到这里吧,下期再见~

(下期预告:Lua的基本语法)

Did you find apk for android? You can find new Free Android Games and apps.

关于作者

3366RT

前54df论坛最后一任游民部落版主

发表评论