![55cda0b06f604f3094bbab912a589a71.png](https://img-blog.csdnimg.cn/55cda0b06f604f3094bbab912a589a71.png)
Kotlin运算符思维导图
目录
Kotlin中大多运算符均可重载,&&、||、===、!==不可重载
一元运算符
+,- 作为一元运算符是表示数的正负
其重载函数为 unaryPlus() 和unaryMinus()
++,-- 为递增运算符,和其他语言类似,有前置和后置的区别
其重载函数为inc() 和dec()
var a=123 println(+a)//123 println(-a)//-123 println(++a)//124 println(--a) //124 println(a++)//124 a现在是125 println(a--)//125 a现在是124
二元运算符
算术运算符
+:加法 也可用作字符串的拼接,重载函数为plus(operate_num)
- :减法 重载函数为 minus(operate_num)
* :乘法 重载函数为 times(operate_num)
/ :除法 重载函数为 div(operate_num) 当操作数均为整数,则商也为整数,若有操作数为浮点数,则商为浮点数
%:取余 重载函数为 mod(operate_num)或rem(operate_num)
var a=123 var b=456 println(a+b)//579 println(a-b)//-333 println(a*b)//56088 println(a/b)//0 println(a%b)//123 println(a/246.0)//0.5
逻辑运算符
&&:与运算,当两操作数表达式均为真true时,值为true,不能重载
||:或运算,当两操作数表达式均为假false时,值为false,不能重载
!:非运算,当操作数表达式为真true时,值为false,重载函数为not()
比较运算符
>: 大于运算 a>b , a.compareTo(b)>0,重载compareTo()函数
<: 小于运算 a<b,a.compareTo(b)<0,重载compareTo()函数
>=: a>=b,a.compareTo(b)>=0,重载compareTo()函数
<=:a<=b,a.compareTo(b)<=0,重载compareTo()函数
==:a==b,a?.equals(b) ?: (b === null),重载 equals()函数
!=:a!=b,
!(a?.equals(b)?:(b === null)),重载
equals()
函数
===:a===b 比较的是a和b的内存地址,不能重载
!==:a!==b 也比较的是a和b的内存地址,不能重载
in:a in b b是一个序列化的对象,若a在b中,则返回真,重载contains()函数
!in:a !in b 重载contains()函数
位运算符
右移 shr() ,操作数.shr(位数)
左移 shl(),操作数.shl(位数)
逻辑右移 ushr(),操作数.ushr(位数)
或 or(),操作数.or(操作数)
与 and() 操作数.and(操作数)
异或 xor(),操作数.xor(操作数)
取反 inv(),操作数.inv()
var a=3 println(a.shr(2))//011->2 0 println(a.shl(2))//011<-2 12 println(a.ushr(2))//011->2 0 println(a.and(2))//011 & 010 2 println(a.or(2))//011 | 010 3 println(a.xor(2))//011 ^ 010 1 println(a.inv())//-4
复合运算符
+= 重载函数 plusAssign()
-= 重载函数 minusAssign()
*= 重载函数 timesAssign()
/= 重载函数 divAssign()
%= 重载函数 remAssign()
区间运算符
.. A..B 闭区间[A,B] 重载函数 rangeTo()
索引运算符
get函数 相对应的一系列[]取值
set函数 相对应的一系列[]修改值
![]()
具体实例