lua - Lua中我不明白的变量声明

标签 lua

我正在阅读一些 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/

相关文章:

lua - 奇怪的 “attempt call field ”抽屉“(表值)”错误

lua - 如何在 C 函数中生成 lua 脚本

c++ - Lua C API 嵌套表段。过错

lua - 对 lua 的 os.clock 的精度感到困惑

Lua - Perlin 噪声生成 - 获取条形而不是正方形

string - Lua string.find正确的格式?

lua - 在协议(protocol)字段创建中发出 'attempt to index global ' base''

optimization - Lua挑战: Can you improve the fannkuch implementation's performance?

c - 如何用C语言进行lua表操作?

class - lua 类 - 无法设置属性和检索值