如何用Lua三元运算符一次性处理多个变量?

2026-04-01 20:490阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计312个文字,预计阅读时间需要2分钟。

如何用Lua三元运算符一次性处理多个变量?

假设我想在某个条件下为两个变量分配两个值,如果所述条件为假,则这两个值不同。我会这样设定:\( a + b=4 \times 5 \) 和 \( 1, 2 \) 或 \( 3, 4 \),然而,这指定为假时,\( a, b \) 为 2。如果我们有:\( a + b=4 \times 5 \) 和 \( 1 \),则1表示为 1。

假设我想在某个条件为真时为两个变量分配两个值,如果所述条件为假则为两个不同的值.我会假设它会这样做:

a, b = 4 > 5 and 1, 2 or 3, 4

然而,这指定为假,b为2.
如果我们有:

a, b = 4 < 5 and 1, 2 or 3, 4

这正确地指定a为1,b为2.

如何用Lua三元运算符一次性处理多个变量?

我在这里错过了什么,如何让“三元运算符”像我期望的那样工作?

你错过了Lua的和/或是短切,逗号在层次结构中较低.基本上这里发生的是前4个>将5和1评估为假,将2或3评估为2,忽略4.在第二种情况下,4< 5是正确的,因此4< 5和1是1,其余的保持原样. 正如Egor Skriptunoff建议你做的那样

a, b = unpack(4 > 5 and {1,2} or {3,4})

代替.

本文共计312个文字,预计阅读时间需要2分钟。

如何用Lua三元运算符一次性处理多个变量?

假设我想在某个条件下为两个变量分配两个值,如果所述条件为假,则这两个值不同。我会这样设定:\( a + b=4 \times 5 \) 和 \( 1, 2 \) 或 \( 3, 4 \),然而,这指定为假时,\( a, b \) 为 2。如果我们有:\( a + b=4 \times 5 \) 和 \( 1 \),则1表示为 1。

假设我想在某个条件为真时为两个变量分配两个值,如果所述条件为假则为两个不同的值.我会假设它会这样做:

a, b = 4 > 5 and 1, 2 or 3, 4

然而,这指定为假,b为2.
如果我们有:

a, b = 4 < 5 and 1, 2 or 3, 4

这正确地指定a为1,b为2.

如何用Lua三元运算符一次性处理多个变量?

我在这里错过了什么,如何让“三元运算符”像我期望的那样工作?

你错过了Lua的和/或是短切,逗号在层次结构中较低.基本上这里发生的是前4个>将5和1评估为假,将2或3评估为2,忽略4.在第二种情况下,4< 5是正确的,因此4< 5和1是1,其余的保持原样. 正如Egor Skriptunoff建议你做的那样

a, b = unpack(4 > 5 and {1,2} or {3,4})

代替.