1

次の Lua コードでは:

function eq_event(op1, op2)
    if op1 == op2 then
        return true
    end
    local h = getequalhandler(op1, op2)
    if h then
        return not not h(op1, op2)
    else
        return false
    end
end

なぜnot not戻り値の前に使用するのですか? 生の戻り値とは違うのですか?また、Cでは式の前にtheを使用する機会もあったことを覚えてい!!ますが、それらは同じですか?

4

1 に答える 1

3

not notnil を false に変換し、その他のすべての値をfalsetoに変換しtrueます。C と対話する場合にのみ、ブール値を返す必要がある場合があります。

はい、C と同じ!!です。唯一の違いは、C では 0 (および私が覚えていない他の値) も偽であることです (つまり、2 倍されていない場合は false を返します)。

于 2012-08-04T05:55:52.427 に答える