Lua Compare
比较时发现一个问题
local a = 1
local b = nil
print(a < b)
报错 compare number with nil
print(a > b)
报错 compare nil with number
print(b < a)
报错 compare nil with number
print(b > a)
报错 compare number with nil
Lua 手册 中找到了答案
当两个参数都是数字会根据原样进行比较
而如果都是String 会根据当前语言环境 比较两者的值
否则的话 会把所有的 > | >= 转换为 < | <= 操作
并且会尝试调用 lt 和le元方法
所以当程序运行中出现此报错时 可以第一时间分辨出哪个变量类型出现了问题