0
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

任何和所有的帮助表示赞赏。

4

1 回答 1

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。其次,在示例中,我使用的函数返回布尔值(真或假)而不是数字(0 或 1)。

于 2013-05-20T15:46:01.410 回答