我正在Github上浏览一些Lua代码,在其中我看到一些类似的语句
return Memory.value("game", "textbox") == 1
这是否等于:
if Memory.value("game", "textbox") == 1 then
return
end
或这个?
if Memory.value("game", "textbox") == 1 then
return true
else
return false
end
return
是关键字,没有条件作为参数,而是表达式。如果您明确声明return
它将返回。但是,它会评估它的参数,这就是逻辑方面起作用的时候。
我将进入逻辑方面。
==
是比较运算符,它检查其参数是否彼此相等。如果是这样,则返回true。因此,当用于时return
,return
如果相等,将求值并返回true。
这不限于==
,任何比较操作符(~=
,<=
,>=
,<
,>
)会做同样的事情。
and
,or
但是工作原理略有不同。他们不返回true / false。它们的行为如下:
return a and b
:这基本上是评估a是否为true(既不是false也不是nil)返回b
return a or b
:这基本上转化为*如果a为true(既不是false也不是nil)则返回a,否则返回b
所以你可以想像,类似return a and b or c
手段
if a then
if b then
return b
else
return c
end
else
return c
end
所以return a and b or c
等于return ((a and b) or c)
为了完整起见,not
只需对其求值并求反即可,因此,如果它为false / nil,则返回true,否则返回false。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句