Existe-t-il un moyen d'obtenir 1 avec vrai et 0 avec faux en Lua?.
Vous pouvez combiner les clauses and
et or
telles que les opérateurs ternaires.
function bool_to_number(value)
return value and 1 or 0
end
Vous pouvez aussi faire ceci:
bool_to_number={ [true]=1, [false]=0 }
print(bool_to_number[value])
Ou ca:
debug.setmetatable(true, {__len = function (value) return value and 1 or 0 end})
print(#true)
print(#false)
La réponse de hjpotter92 prend toute valeur différente de nil en tant que valeur vraie (retourne 1). Cela prend plutôt la valeur true ou false.
local value = true
print(value == true and 1 or value == false and 0)
-- we add the false check because it would drop 0 in case it was nil
Si vous voulez utiliser une fonction à la place, ce serait ça
local value = true
local function bool_to_number(value)
return value == true and 1 or value == false and 0
end
print(bool_to_number(value))