|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!在这篇文章中,我将向你说明为何要应用Lua。我写这篇文章最后的念头是因为Lua邮件列表中的一则新闻“whyisntLuamorewidelyused?”。针对这个新闻的答复各类各样,有的说是由于缺乏类库,而我更赞成别的一个概念,那就是年夜部门人都不爱好本身着手(doityourself)的方法来处理成绩。我经常把Lua比作ArchLinux。这也就注定了Lua是一个小众产物。上面我将列出几条为何我要应用Lua的来由:
1.可以和C/C++集成
我的编程阅历不长,然则我曾经应用过许多种说话了,包含Lisp,Scheme,Python,Perl,Bash,VBA,SQL等等。然则它们没有一个可以像Lua那样可以和C混着应用。C说话的API异常的清洁和直不雅,你花一个下昼的时光就能够上手了。假如你对这个感兴致的话,你可以看看“PILssectionontheCAPI”。
为何这个特征很主要呢?起首,假如你有现成的C/C++类库的话,你可以很轻易的在Lua中挪用这些API。或许你也能够写一个剧本让Lua在C中履行。这也意味着Lua的法式不会有速度成绩。假如你照样认为Lua不敷快的话,你可以用C完整重写这段代码。固然其余说话的法式也能够用C重写,然则我还没有发明谁能比Lua更便利的做到这一点。
2.疾速、简练
比拟于其他说话,Lua的完成长短常高效的。或许是由于Lua应用的是“基于存放器的虚拟机”而不是基于客栈的虚拟机。或许说应用Lua的开辟者都异常的牛逼。不论如何,你简直不须要挂念Lua代码的机能成绩。
然则假如你对机能照样不满足的话,你可以测验考试应用LuaJIT:
“LuaJIT是公认的运转最快的静态说话的完成,而且对内存的应用少,虚拟机占用低于125K,JIT编译器占用不到85K(在x86情况中)。”
LuaJIT可以简直和C代码饿速度媲美。不论如何,假如你照样对速度不满足的话,你可以尝尝我在第一点中提出的建议。
3.教导感化
固然这不是一个编程说话的功效,然则我发明应用Lua让我对盘算机迷信的全体懂得有所进步。好比说,这篇文章是关于Lua5.0的完成的,让我对虚拟机是若何完成的有了一个懂得。浏览源代码让我年夜开眼界。我以为这一切都得益于Lua有条不紊的改良
4.函数式编程
Lua供给了函数式编程的架构,让编程加倍的风趣。例如anonymousfunctions,higherorderfunctions,lexicalclosures,propertailcalls等等。这些特征不是说话的一些语法糖,而是Lua从底层就整合了这些特征。好比说,Lua的每个办法都是一个值(好比数字2,或许字符串“ktr”),也就意味着每个办法都是匿名的。你只需给它取个名字,然后你就能够挪用它了。你可以给print从新赋值:
print=math.sin
你可以应用这个功效创立沙箱。假如print是一个风险的操作,你可以调换成你本身的print办法或许从全局中删除这个办法。
5.任何器械都是一张表
在Lua中,任何一个变量类型都是一张表,例如Array,Hash,“module”或许全局变量等等。也就是说你可以“require”一些模块(相似Python的import语句)而且把成果当错table来处置。在Python中,你可以__import__(...)一些模块,然后前往值的变量就能够经由过程相似var(module)的方法来拜访。在Lua中,你可以经由过程module[var]的方法来拜访模块中的变量。我这里提到Python是为了强调分歧的地方,解释Lua更轻易应用。
这也让你进修Lua的语法加倍疾速。你不消担忧list和dictionary、package有甚么分歧。
6.分歧性
不知你能否意想到,Lua长短常分歧的说话。它的许多功效都是做的适可而止。好比说,Lua没有“for”轮回直到Lua4.0,也就是Lua说话宣布7年今后。这是由于while轮回更加通用,并且语法更简练。Lua的开辟团队绝对来讲比拟守旧,他们不接收patch,所以Lua的退化比拟迟缓,然则比拟安稳。你晓得一切的功效都是有计划的在停止,也就意味着你不克不及期望你所等待的功效可以被很快的完成。
7.可移植性
关于这一点我不会讲许多细节,然则Lua根本上可以在任何情况中运转。Lua的代码是依照“CleanANSIC”的尺度编写的,所以假如你有一个C的运转情况,你就能够运转Lua。
总结:Lua是一门异常简略然则壮大的说话。
欢迎大家来到仓酷云论坛! |
|