Lua 是没有传统意义上的三目运算符的,使用了以下格式代替
a and b or c其中 a是 Boolean类型
a为 true 则 返回b , 为false则返回 c
据测试,这里有个陷阱,如果 b为nil ,则无论a 为任何值,整个表达式都会返回 c
这个陷阱在某些情况下十分的好用,比如在 字符串拼接的时候,如果字符串为nil,lua是要抛错误的,
result="str="..str -- str=nil,报错
这时可以用以下语句
result="str="..(true and str or "nil") --成功运行str是指向字符串的变量
503

被折叠的 条评论
为什么被折叠?



