Lua中奇怪的return语句
我正在Github上浏览一些Lua代码,在那里我看到了如下语句Lua中奇怪的return语句,lua,Lua,我正在Github上浏览一些Lua代码,在那里我看到了如下语句 return Memory.value("game", "textbox") == 1 这是否等于: 还是这个 if Memory.value("game", "textbox") == 1 then return true else return false end return语句需要一个表达式作为其参数。这意味着,如果编写返回表达式,则将返回表达式的计算值 在这种特定情况下,Memory.value(“游戏
return Memory.value("game", "textbox") == 1
这是否等于:
还是这个
if Memory.value("game", "textbox") == 1 then
return true
else
return false
end
return
语句需要一个表达式作为其参数。这意味着,如果编写返回表达式
,则将返回表达式的计算值
在这种特定情况下,Memory.value(“游戏”、“文本框”)==1
是一个表达式,如果Memory.value(“游戏”、“文本框”)
的返回值等于1
,则该表达式的计算结果为true
。如果Memory.value(“game”、“textbox”)
是一个不同于1
的值,则表达式将计算为false
,这就是return
语句将返回的值
您可以很容易地将给定的语句写成
if (Memory.value("game", "textbox") == 1) then
return true
else
return false
end
但是,由于这在逻辑上是多余的,您应该避免编写此代码,而是使用您提供的一行程序。您的问题表明您了解Perl。不,它不像Perl,在Perl中,'if'和类似语句的条件可以跟在语句后面
return
需要一个包含零个或多个返回值的列表。函数可以返回任意长度的列表。它还可以有任意数量的返回语句,它们不需要返回相同长度或含义的列表。因此,函数的文档是必不可少的。请看一个例子
此语句返回true
或false
它将内存引用的值视为一个表,用“value”对其进行索引,将结果值作为带有两个字符串参数的函数调用,并将函数调用的结果与值1进行比较
return
是一个关键字,没有条件作为参数,而是一个表达式。如果您明确声明return
,它将返回。然而,当逻辑方面发挥作用时,它会评估它的参数
我将进入逻辑方面
=
是一个比较运算符,它检查其参数是否彼此相等。如果是,则返回true。因此,当在返回
中使用时,返回
将求值并返回true(如果它们相等)
这不限于=
,任何比较运算符(~=
,=
,
)都将执行完全相同的操作
和
,或
的工作原理略有不同。它们不会返回真/假。以下是他们的行为:
返回a和b
:这基本上是计算a是否为真(既不是假也不是零)返回b
返回a或b
:这基本上转换为*如果a为真(既不是假也不是零),则返回a,否则返回b
正如您所想象的,类似于返回a和b或c的内容意味着
if a then
if b then
return b
else
return c
end
else
return c
end
因此返回a和b或c
等同于返回((a和b)或c)
为了完成,not
只是对其求值并将其反转,因此如果为false/nil,则返回true,否则返回false
if a then
if b then
return b
else
return c
end
else
return c
end