导读 lua如何把大于小于比较在not前 //如果a大于b或者a不等于0,则返回真if a > b or a ~= 0 then return true//如果a等于b并且a不等于

lua如何把大于小于比较在not前

//如果a大于b或者a不等于0,则返回真if a > b or a ~= 0 then return true//如果a等于b并且a不等于0则返回真if a == b and a~=0 then return true符号说明:比较大小:等于:==不等于:~=且:and或:or

lua不等于 lua大于等于lua不等于 lua大于等于


lua的等于符号的小疑问

你要了解lua的赋值机制。

很明显,a和b都是table。 并且a和b都是一个符号而已,他们只是引用不同的地址的内容。

那么图1,a和b 两个符号引用的是 2个地址,尽管这两个地址保存的变量时相同的。

图2,a和b 引用的是相同的地址,所以,他们相等了。

也就是说,相对于table来说,==号,其实判定的是左右两边的引用地址,而不是 引用的变量的值

Lua里有没有逻辑运算 中的并和或的运算

Lua有逻辑运算,具体参考如下:

比较运算符< > <= >= == ~=

分别表示 小于,大于,不大于,不小于,相等,不相等。所有这些操作符总是返回true或false。

对于Table,Function和Userdata类型的数据,只有 == 和 ~=可以用。相等表示两个变量引用的是同一个数据。比如:

a={1,2}

b=a

print(a==b, a~=b) -- true, false

a={1,2}

b={1,2}

print(a==b, a~=b) -- false, true

数值运算符

和C语言一样,支持 +, -, *, /。但Lua还多了一个"^"。这表示指数乘方运算。比如2^3 结果为8, 2^4结果为16。

连接两个字符串,可以用".."运处符。如:

"This a " .. "string." -- 等于 "this a string"

逻辑运算 (此处特别注意)

and, or, not

其中,and 和 or 与C语言区别特别大。

在这里,请先记住,在Lua中,只有false和nil才计算为false,其它任何数据都计算为true,0也是true!

and 和 or的运算结果不是true和false,而是和它的两个操作数相关。

a and b:如果a为false,则返回a;否则返回b

a or b:如果 a 为true,则返回a;否则返回b

运算符优先级,从高到低顺序如下:

^not - (一元运算)

* /

+ -

..(字符串连接)

< > <= >= ~= ==

and

or

Lua 中的逻辑操作符有 and, or, 以及 not。

10 or 20 --> 10

10 or error() --> 10

nil or "a" --> "a"

nil and 10 --> nil

false and error() --> false

false and nil --> false

false or nil --> nil

10 and 20 --> 20