Function 从函数中获取变量

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,然后使用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) == 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