Digamos que eu tenha uma função que retorne um valor booleano e uma função que defina uma substituição para que a primeira função sempre retorne um booleano especificado. A segunda função é mais ou menos assim:
function override(override, bool)
bool = bool and true or false --convert to pure Boolean
if override then
boolOverride = bool
else
boolOverride = nil
end
end
No entanto, quero fazer com que, se bool não for especificado, funcione bool = not boolOverride
. Então isso seria algo como:
function override(override, bool)
if type(bool) == "nil" then
bool = not boolOverride
else
bool = bool and true or false --convert to pure Boolean
end
if override then
boolOverride = bool
else
boolOverride = nil
end
end
O problema é que quero executar a opção padrão bool = bool and true or false
se o parâmetro for especificamente nulo em vez de estar ausente. Existe alguma diferença entre as duas situações que eu poderia usar para fazer isso acontecer?