Function 从函数中获取变量
我知道我可以运行isEven,然后使用state变量。但是有没有一种方法可以在一行中完成呢 例如Function 从函数中获取变量,function,lua,Function,Lua,我知道我可以运行isEven,然后使用state变量。但是有没有一种方法可以在一行中完成呢 例如isEven(8).状态 感谢所有帮助。正如埃戈尔在评论中所说,这正是返回值的目的。当您在代码中看到函数调用时,例如isEven(8),它将计算为该函数的返回值 function isEven(x) print("Checking if "..x.." is even.\nWill return state as 1 if true.") if math.fmod(x, 2) ==
isEven(8).状态
感谢所有帮助。正如埃戈尔在评论中所说,这正是返回值的目的。当您在代码中看到函数调用时,例如
isEven(8)
,它将计算为该函数的返回值
function isEven(x)
print("Checking if "..x.." is even.\nWill return state as 1 if true.")
if math.fmod(x, 2) == 0 then
state = 1
end
return state
end
最后,我想指出isEven函数的两个方面:首先,如果您愿意,可以使用
%
运算符而不是math.fmod。其次,在我使用的示例中,函数返回一个布尔值(true或false),而不是一个数字(0或1)。您可以只使用返回值吗?您在这里使用state
变量做什么?您只需编写isEven(8)
,而无需附加state
:如果isEven(8)==1,则…
。这是一个潜在的错误等待发生<代码>状态这里有一个全局变量,这就是OP混淆的原因。程序员几乎总是希望函数中有local
变量。您应该将这样的变量定义为local
,而不是将它们用作全局变量。
function isEven(x)
print("Checking if "..x.." is even")
return (math.fmod(x, 2) == 0)
end
print( isEven(8) )
print( isEven(7) )
if isEven(8) then
print("a")
else
print("b")
end