从函数获取变量

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 然后使用 state 变量。但是否有一种方法可以在一行中完成?

isEven(8).state 这样的方式?

我非常感谢任何帮助。

点赞
用户90511
用户90511

正如 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 or false),而不是一个数字(0 or 1)。

2013-05-20 15:46:01