x = x or v 它等价于if not x then x = v end意思就是没有设置x的时候(即对x的求值结果为假时),将其设为一个默认值v
(a and b)or c 它类似于C语言中的表达式a?b:c,但前提是b不为假
若x>y,则and的第一个操作数为真,那么and运算的结果就是其第二个操作数x,而x是一个永远为真的表达式(因为它是一个数字)。然后or运算的结果就是其第一个操作数x,当x > y为假的时候,and表达式为假,因此or的结果是其第二个操作数y
操作符not永远只返回true或false
Print(not nil) --true
Print(not false) --true
Print(not 0) --false
Print(not not nil) --false