有没有办法在Lua中使用true获得1,在false中使用false? 有一个tobool给出真或假1或0,但tonumber给出一个真或假的零值。
答案 0 :(得分:9)
您可以将model.matrix
和and
子句合并为三元运算符。
or
答案 1 :(得分:4)
你也可以这样做:
bool_to_number={ [true]=1, [false]=0 }
print(bool_to_number[value])
或者这个:
debug.setmetatable(true, {__len = function (value) return value and 1 or 0 end})
print(#true)
print(#false)
答案 2 :(得分:1)
来自hjpotter92的答案将任何不同于nil的值作为真值(返回1)。而是取值true或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
如果你想使用一个函数,那就是
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))