【问题标题】:Lua: Storing a logical operator in a variable?Lua:将逻辑运算符存储在变量中?
【发布时间】:2018-05-11 19:55:28
【问题描述】:

我无法通过 Google 找到任何关于此的信息,所以我必须在这里询问。我想做这样的事情(非常伪代码):

y = first_value

x={op_1 = >, op_2 = <, c = some_value}

if first_value x.op_1 x.c then
...
end

该代码对我说的是,如果 first_value 大于 x 的 c 值,则执行某些操作。现在,我知道我可以将 op_1 和 op_2 设置为某个值以区分它们,然后使用单独的 if 语句比较值,但我想尽量减少使用的 if 语句的数量。

我只是想知道这样的事情是否可能,甚至可能以不同的形式出现。提前致谢!

【问题讨论】:

  • 这是不可能的。你不能在 Lua 中定义自己的中缀运算符。

标签: if-statement lua operators logical-operators


【解决方案1】:

不是这样,运算符是作为语法一部分的特定符号。但是,您可以使用函数来表示操作

y = first_value

x={op_1 = function(a,b)return a>b end, op_2 = function(a,b)return a<b end, c = some_value}

if x.op1(first_value, x.c) then
  ...
end

【讨论】:

  • 啊,这很有道理!我只是把它复杂化了。谢谢!
猜你喜欢
  • 2012-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-12
  • 1970-01-01
  • 2020-08-07
  • 1970-01-01
相关资源
最近更新 更多