根据我的理解,Lua是一种可嵌入的脚本语言,可以在对象上执行方法。要避免哪些陷阱?将Lua用作解释器并在Web环境或规则引擎中执行方法是否可行?
答案 0 :(得分:6)
Lua脚本编写on track成为Apache Web服务器的核心模块。
有一些工具可以绑定Lua和C#/ .NET代码here。 LuaInterface是最新的。
答案 1 :(得分:5)
Lua非常快 - 脚本可以预编译为字节码,函数执行接近C ++虚方法调用。这就是它在游戏行业中用于在游戏中编写AI,插件和其他高级内容的原因。
但是你将C#和web服务器放在你的问题标签中。
如果您没有考虑嵌入式Web服务器 - 那么Lua不是很强大。 Lua是ANSI C - 它编译为本机代码,因此它不是非常欢迎您的asp.net服务器,也不欢迎您的C#代码。想想“中等信任”或“绑定”或“64位”。
足够的陷阱。如果您已经在使用C#,则没有理由在Web服务器上避免使用它。它被编译和缓存。它服务于像这样的大型网站。
答案 2 :(得分:2)
我们曾经在中型C#生物医学仪器控制应用程序中使用Lua作为我们的脚本语言。这是教会硬件人员如何编写自己的一小部分测试代码的好方法。
一旦IronPython成熟,我们认为由于Python功能更强大且与VS很好地集成(以及有更多人使用它),我们将用Python替换所有Lua。到目前为止,这一切都很顺利。 Lua是一个很好的小语言,我不确定在这一点上我能想到Lua优于Python的任何优点。
Lua可以快一点,但是如果你已经将你的域分成了脚本-y和非脚本-y,那么可能这不是一个重要因素。
答案 3 :(得分:1)
为什么我喜欢Lua,因为它擅长作为一种语言,特别是与C / C ++一起使用时应该如此。对我而言,这两者的合并是“使”成为语言的。
陷阱......缺乏扩展模块可以被视为一个。像没有CPAN,但有LuaRocks。如果你有足够的绑定来解决你的问题,取决于。如果没有,你可能需要制作它们。
语言陷阱.. Lua wiki中有一些愿望,可以被视为“陷阱”。没有“切换”声明。没有合适的“cond?a:b”格式。如果你不想让你的思维超越这些相当肤浅的语法,那么JavaScript可能适合你吗?
总的来说,它是一种语言,比没有它的编程提高了10-100倍。