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) ではなくブール値 (true または false) を返します。

于 2013-05-20T15:46:01.410 に答える