Lua中的内联条件(a == b?“yes”:“no”)?
有没有在Lua中使用内联条件?
如:
print("blah: " .. (a == true ? "blah" : "nahblah"))
当然:
print("blah: " .. (a and "blah" or "nahblah"))
如果a and t or f
不适合你,你总是可以创build一个函数:
function ternary ( cond , T , F ) if cond then return T else return F end end print("blah: " .. ternary(a == true ,"blah" ,"nahblah"))
当然,那么你有退步,T和F总是评估….为了解决这个问题,你需要提供函数给你的三元函数,这可能会变得笨拙:
function ternary ( cond , T , F , ...) if cond then return T(...) else return F(...) end end print("blah: " .. ternary(a == true ,function() return "blah" end ,function() return "nahblah" end))
关于三元运算符的lua-users wiki上有一篇不错的文章,还有问题解释和几个解决scheme。