我正在阅读一些 Lua 并做了一个小类(class),将其与 Löve 2D 一起使用,在一个示例中,他们以这种方式声明了一个变量,老实说,我不明白:
ballDX = math.random(2) == 1 和 100 或 -100
我尝试用谷歌搜索并阅读一些内容,但没有找到专门解释这一点的地方。看看它的内容,我发现显而易见的是,BallDX 等于 1 到 2 之间的随机数,但从那里我很困惑,随机数等于 1 和 100 或 -100 是什么意思?
最佳答案
这是一个有点有趣的 Lua 概念
如果第一个参数为 false,则运算符 and
返回它的第一个参数;否则,它返回第二个参数。
如果or
不为假,则运算符or
返回其第一个参数;否则,它返回第二个参数
在这种情况下,math.random(2) == 1 和 100 或 -100
的行为与三元运算符完全相同,它可以转换为:
如果 math.random(2) 等于 1,则设置 ballDX = 100,否则设置 ballDX = -100
例如,假设您有一个名为 c
的变量,并且您希望仅当 a
变量大于 10 时才为其赋值,使用三元运算符,您可以这样做:c = a > 10 ? a:b
在 Lua 中,您可以使用 c = a > 10 和 a 或 b
关于lua - Lua中我不明白的变量声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64083425/