如何在Lua中比较/排序布尔值?假定“标准”排序为true
> false
。
local first = true
local second = false
first > second
stdin:1: attempt to compare two boolean values
stack traceback:
stdin:1: in main chunk
[C]: in ?
答案 0 :(得分:1)
不能比较布尔值的顺序。
但是,如果您坚持尝试,请尝试以下操作:
debug.setmetatable(true,{
__lt = function (x,y) return (not x) and y end
})
print("false < false", false < false)
print("false < true", false < true)
print("true < false", true < false)
print("true < true", true < true)
答案 1 :(得分:0)
由于两个操作数都是布尔值,因此可以使用标准布尔值技术:
(not first) and second -- "first < second"
first and (not second) -- "first > second"
示例:
my_table = {
{ name = "Max", strong = true },
{ name = "Ray", strong = false },
{ name = "Sam", strong = true }
}
table.sort(my_table, function(a, b)
return a.strong and not b.strong
end)