Lua的技术特点
分类:CentOS运维 阅读:90657 次
目前Lua语言的最新版本是5.2 Beta,Lua也能对面向对象编程,函数式编程,数据驱动式编程提供很好的支持。作为一个扩展式语言,Lua没有 "main" 程序的概念:它只能嵌入一个宿主程序中工作,这个宿主程序被称作embedding program或简称为host。宿主程序可以通过调用函数执行一小段Lua代码,可以读写Lua变量,可以注入C函数让Lua代码调用。这些扩展的C函数,可以大大的扩展了Lua可以处理事务的领域,这样就可以订制出各种语言,而它们共享一个统一的句法格式的框架。Lua的官方发布版就包含了一个叫做Lua的简单的宿主程序,它用Lua库提供了一个保证独立的Lua解释器。
写一个最最简单的程序——Hello World。
- print("HelloWorld")
假定你把上面这句保存在hello.lua文件中,你在命令行只需要:
- prompt>luahello.lua
看到结果了吗?
让我们来看一个稍微复杂点的例子:
- --definesafactorialfunction
- functionfact(n)
- ifn==0then
- return1
- else
- returnn*fact(n-1)
- end
- end
- print("enteranumber:")
- a=io.read("*number")--readanumber
- print(fact(a))
这个例子定义了一个函数,计算输入参数n的阶乘;本例要求用户输入一个数字n,然后打印n的阶乘。
(图)魔兽世界插件中的“Hello World”
很多网站宣传Lua语言作为脚本开发了《魔兽世界》,其实Lua语言只是开发了《魔兽世界》的插件,几乎所有的《魔兽世界》插件都是使用解释性的脚本Lua编写,核心的C++代码只占全部代码中的很小一部分比重。在传统平台上Lua最流行的应用场景是在游戏中作为处理逻辑的脚本,即用来编写游戏的任务脚本,以实现游戏的可配置性和可扩展性。在游戏中Lua脚本的加载不需重启服务器,尽管脚本的运行效率低于编译好的二进制代码,但目前CPU速度已完全能够让Lua脚本迅速解释执行。这也正是包括《魔兽世界》、《战锤40K》、《仙境传说》、《博德之门》和《轩辕剑外传汉之云》在内的众多游戏选择Lua开发插件的原因。
(图)魔兽世界中游戏内插件开发的布局器
想学习Lua语言的朋友还可以到51CTO下载频道魔兽世界Lua插件的编辑器来试验一下。
热门推荐
- python 中文乱码问题
- 服务器上排除问题的头五分钟
- Linux内核3.12正式发布 4.0已列入计划
- Lua脚本在C++下的舞步(入门指引)
- 全面解读应用程序端口
- win系统下数据库的灾难恢复视频教程
- 互联网公司linux运维生产场景常用软件工具一览
- 查看远端的端口是否通畅3个简单实用案例
- 请大佬们多给运维人员思考和决策的权利
- 为生产服务器选择合适的Linux发行版
- (Python编写)LAMP一键安装脚本
- Linux的开源和苹果免费OS的区别
- Linux是数据中心的国王 但Unix永不会消失
- 细说Linux系统优化-实践篇
- CentOS系统管理员成长经验:十一个心得
- 医院信息化系统的安全策略
- 安全运维理念(半神半仙亦民工)
- 10个具有特殊用途的Linux发行版
- Linux内核将用Nftables替代iptables
- 28个Linux的命令行神器