Questions tagged «lua»


10
为什么我们需要“回调函数”?
我正在读书programming in Lua。它说 在许多情况下,封闭提供了一种有价值的工具。如我们所见,它们可用作排序等高阶函数的参数。闭包对于构建其他功能的功能也很有价值,例如我们的newCounter示例;这种机制允许Lua程序结合功能世界中的复杂编程技术。闭包对于回调函数也很有用。当您在传统的GUI工具箱中创建按钮时,就会出现一个典型的示例。每个按钮都有一个回调函数,当用户按下该按钮时会被调用。您希望不同的按钮在按下时会做一些略有不同的事情。例如,一个数字计算器需要十个类似的按钮,每个数字一个。您可以使用以下功能创建每个: function digitButton (digit) return Button{label = tostring(digit), action = function () add_to_display(digit) end} end 看来,如果调用digitButton,它将返回action(将创建一个闭包),因此,我可以访问digit传递给digitButton。 我的问题是: Why we need call back functions? what situations can I apply this to? 作者说: 在此示例中,我们假定Button是创建新按钮的工具包函数。label是按钮标签;而action是按下按钮时要调用的回调闭包。在digitButton完成其任务之后以及在局部变量digit超出作用域之后,可以很长一段时间调用该回调,但是仍然可以访问此变量。 根据作者,我认为类似的例子是这样的: function Button(t) -- maybe you should set the button here return t.action -- so …

7
函数只返回不变的参数,没用吗?
我刚刚在我正在工作的项目中找到此功能: -- Just returns the text unchanged. -- Note: <text> may be nil, function must return nil in that case! function Widget:wtr(text) return text end 太可悲的是,编码器不再在公司工作。为什么要使一个函数什么都不做,但是返回调用它的参数呢? 这种功能有什么用,在本例中未指定,但在任何情况下都没有用? 由于 function aFunction(parameter) return parameter end 结束于 aFunction(parameter) == parameter 我为什么要写这样的东西 aFunction(parameter) == whatIWantToCheck 代替 parameter == whatIWantToCheck ?

2
Lua如何处理整数和浮点数?
据我记得自己编程时,我曾被教过不要比较浮点数是否相等。现在,在阅读有关Lua 类型的Lua编程时number,我发现了以下内容: 数字类型表示实数(双精度浮点数)。Lua没有整数类型,因为它不需要它。人们对浮点算术错误普遍存在误解,有人担心即使是简单的增量也会对浮点数产生怪异。事实是,当您使用双精度数表示整数时,根本没有舍入错误(除非数字大于100,000,000,000,000)。具体来说,Lua数可以表示任何长整数而没有舍入问题。而且,大多数现代CPU进行浮点运算的速度与整数运算一样快(甚至更快)。 所有语言都正确吗?基本上,如果我们不超过双精度浮点数,那么使用整数算术安全吗?或者,为了更符合问题标题,Lua对它的number类型有什么特殊之处,以便它既可以用作整数类型又可以用作浮点类型吗?

2
扩展脚本是否应该在沙箱中运行?
特别是,这是关于用lua(luajit-2.0)编写的游戏扩展的。我正在考虑是否应该限制这些脚本可以做什么,并得出一个结论,我可能不应该这样做: 很难正确。听起来很傻,但是我的沙箱很有可能最终还是漏水。 我唯一想到的好处就是在运行第三方脚本时为用户提供某种安全感。 不利之处在于,它对于扩展编写者来说是非常令人讨厌的。也就是说,就目前而言,我本人(游戏内容将主要编写脚本)。 我现在问这个问题的原因是,在我真正拥有任何可展示的东西之前,尽早添加沙箱很容易,但是也会对我自己施加恼人的限制。但是,如果我先继续使用它,然后再决定我确实需要沙箱,那我会遇到问题(我要么不得不重写已经存在的脚本,要么引入某种形式的信任管理系统这似乎比它的价值还要麻烦)。

3
(Lua)游戏脚本是什么意思?
我读过Lua通常用于嵌入式脚本,尤其是用于脚本的游戏。我发现很难想象它是如何使用的。您能描述使用它的原因以及针对哪些功能以及针对哪些受众吗? 这个问题不是专门针对Lua的,而是与Lua脚本目的类似的任何嵌入式脚本。 它用于最终用户进行自定义调整吗?它是否用于游戏开发人员以加快游戏逻辑(关卡,AI等)的创建?因为脚本可以更快,它是否用于编写游戏框架代码? 基本上,我想知道这种脚本用法在普通配置和框架逻辑之间有多深。以及完成了多少脚本。几条配置线还是相当多的?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.