lua 运算符

Posted namestc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua 运算符相关的知识,希望对你有一定的参考价值。

Lua中的表达式包括数字常量、字符串常量、变量、一元和二元运算符、函数调用。还可以是非传统的函数定义和表构造。

 

算术运算

二元运算符:+ - * / ^  (加减乘除幂)

一元运算符:-  (负值)

这些运算符的操作数都是实数。

 

关系运算符

<      >      <=     >=     ==     ~=

这些操作符返回结果为false或者true;==和~=比较两个值,如果两个值类型不同,Lua认为两者不同;nil只和自己相等。Lua通过引用比较tables、userdata、functions。也就是说当且仅当两者表示同一个对象时相等。

 技术分享图片

 

Lua比较数字按传统的数字大小进行,比较字符串按字母的顺序进行,但是字母顺序依赖于本地环境。

 技术分享图片

 

字符串 2和字符串15比较的时候,按照字母顺序比较的时候,首先字符2和字符1进行比较,2大于1,忽略后面的比较操作。

 技术分享图片

为了避免不一致的结果,混合比较数字和字符串,Lua会报错,比如:2 < "15"

当出现数字和字符串进行比较的时候会出现错误。

 

逻辑运算符

and    or     not

逻辑运算符认为false和nil是假(false),其他为真,0也是true. and和or的运算结果不是true和false,而是和它的两个操作数相关。

 

可以用if else来类比and和or的概念

技术分享图片

 

以上是关于lua 运算符的主要内容,如果未能解决你的问题,请参考以下文章

Lua运算符

为啥 Lua 的长度 (#) 运算符会返回意外的值?

lua 运算符

Lua中..和#运算符的用法

Lua中..和#运算符的使用方法

Lua - 在元表中只调用一个运算符