我已经对Lua编程做了一些研究,但我仍然对它可以起作用的范式感到困惑。
在一些演练中,我发现Lua不是面向对象编程的。但他们是其他人说它也可以为OOP工作。所以,我正在研究哪种编程范例可以发挥最佳作用。
答案 0 :(得分:9)
Lua是一个“做你想做的”编程语言。它不挑选范式;它是一个有用的功能包,让您可以自由使用您需要的任何范例。它没有函数式语言功能,但它确实将函数作为一等对象和正确的词法作用域。因此,如果您愿意,可以在功能上使用它。它没有“类”或其他类似的原型,但它确实具有封装数据的方法和使用“this”对象调用函数的特殊语法。所以你可以用它来构建对象。
Lua没有决定你用它做什么;随你(由你决定。它提供了一些低级工具,可以让您轻松构建自己想要的任何范例。
答案 1 :(得分:5)
Lua是imperative language;所以它不适合functional programming。
左边,Lua是procedural language。但是,鉴于其数据结构的简单性(它只有一个:表格),在它上面添加“层”并使其成为object oriented language非常容易。最简单的继承规则可以在10行代码中实现。有几个图书馆提供了更精致的体验。我的图书馆middleclass共有140个LOC。
另一种使用Lua的好方法是scripting language。它小巧,快速,仅使用标准C的东西,它的标准库很小。另一方面,它没有像java那样带有“包含电池”。
最后,我发现它作为数据符号语言非常有用;您可以使用与JSON非常相似的格式表达原始数据。
一般来说,我认为Lua感觉非常接近javascript。