从函数中获取变量

时间:2013-05-20 15:10:50

标签: function lua

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然后使用状态变量。但有没有办法在一行中做到这一点?

isEven(8).state

感谢任何和所有帮助。

1 个答案:

答案 0 :(得分:1)

正如Egor在评论中所说,这正是回归价值所要做的。当您在代码中看到函数调用时,例如isEven(8),它将计算该函数的返回值。

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

最后,我想指出一些关于isEven函数的事情:首先,如果你想要,你可以使用%运算符而不是math.fmod。其次,在我使用的示例中,函数返回一个布尔值(true或false)而不是数字(0或1)。