刚开始用lua,在lua里,and or经常被当成?:来用,今天在写的时候就发现个问题:
a and b or c, 假如b=nil,那么总返回c,与a无关,因为实际上是(a and b) or c,b=nil括号里就必然返回false了,但是我想得到的是nil,又不想写ifelse。
要么写成(not a)and c or b,放or后面b就可以为nil,但c不能为nil;要么写成 (a and {b} or {c} )[1],这样似乎猥琐了一点,不知道还有没有更好的写法
刚开始用lua,在lua里,and or经常被当成?:来用,今天在写的时候就发现个问题:
a and b or c, 假如b=nil,那么总返回c,与a无关,因为实际上是(a and b) or c,b=nil括号里就必然返回false了,但是我想得到的是nil,又不想写ifelse。
要么写成(not a)and c or b,放or后面b就可以为nil,但c不能为nil;要么写成 (a and {b} or {c} )[1],这样似乎猥琐了一点,不知道还有没有更好的写法