搞定 Kotlin 基础(7):轻松掌握运算符
...
一、算术运算符
运算符 |
名称 |
说明 |
例子 |
- |
取反符号 |
取反运算 |
b = -a |
++ |
自加一 |
先取值再加一,或先加一再取值 |
a++或++a |
-- |
自减一 |
先取值再减一,或先减一再取值 |
a--或--a |
运算符 |
名称 |
说明 |
例子 |
+ |
加 |
求a加b的和,还可用于String类型,进行字符串连接操作 |
a + b |
- |
减 |
求a减b的差 |
a - b |
* |
乘 |
求a乘b的积 |
a * b |
/ |
除 |
求a除b的商 |
a / b |
% |
取余 |
求a除以b的余数 |
a % b |
运算符 |
名称 |
例子 |
+= |
加赋值 |
a += b, a += b+3 |
-= |
减赋值 |
a -= b |
*= |
乘赋值 |
a *= b |
/= |
除赋值 |
a /= b |
%= |
取余赋值 |
a %= b |
二、关系运算符
运算符 |
名称 |
说明 |
例子 |
== |
等于 |
a等于b时返回true,否则返回false。可以应用于基本数据类型和引用类型,引用类型比较两个对象内容是否相等。==会调用equals函数实现比较 |
a==b |
!= |
不等于 |
与 == 相反 |
a!=b |
> |
大于 |
a大于b时返回true,否则返回false |
a>b |
< |
小于 |
a小于b时返回true,否则返回false |
a<b |
>= |
大于或等于 |
a大于或等于b时返回true,否则返回false |
a>=b |
<= |
小于或等于 |
a小于或等于b时返回true,否则返回false |
a<=b |
=== |
引用等于 |
用于引用类型比较,比较两个引用是否引用了同一个对象 |
a===b |
!== |
引用不等于 |
与===相反 |
a!==b |
三、逻辑运算符
运算符 |
名称 |
说明 |
例子 |
! |
逻辑非 |
a为true时,值为false,a为false时,值为true |
!a |
&& |
逻辑与 |
ab全为true时,计算结果为true,否则为false。&&与&区别:如果a为false,则不计算b(因为不论b为何值,结果都为false) |
a&&b |
|| |
逻辑或 |
ab全为false时,计算结果为false,否则为true。||与|区别:如果a为true,则不计算b(因为不论b为何值,结果都为true) |
a||b |
四、位运算符
运算符 |
名称 |
例子 |
说明 |
inv |
位反 |
x.inv() |
将x的值按位取反 |
and |
位与 |
x and y 或 x.and(y) |
x与y位进行位与运算 |
or |
位与 |
x or y 或 x.or(y) |
x与y位进行位或运算 |
xor |
位与 |
x xor y 或 x.xor(y) |
x与y位进行位异或运算 |
shr |
位与 |
x shr y 或 x.shr(y) |
x右移y位,高位采用符号位补位 |
shl |
位与 |
x shl y 或 x.shl(y) |
x左移y位,低位用0补位 |
ushr |
位与 |
x ushr y 或 x.ushr(y) |
x右移y位,高位用0补位 |
五、其他运算符
运算符 |
名称 |
说明 |
: |
冒号 |
用于变量或常量类型声明,以及声明继承父类和实现接口。 |
() |
小括号 |
起到改变表达式运算顺序的作用,它的优先级最高。 |
[] |
中括号 |
索引访问运算符。 |
. |
引用号 |
调用函数或属性运算符。 |
= |
赋值号 |
赋值运算符。 |
? |
可空号 |
标识一个可空类型。 |
?. |
安全调用运算符 |
调用非空类型的函数或属性。 |
?: |
Elvis运算符 |
控制合并运算符。 |
!! |
非空断言 |
断言可空表达式为非空。 |
:: |
双冒号 |
引用类、属性或函数。 |
.. |
区间 |
标示一个范围区间 |
-> |
箭头 |
用来声明Lambda表达式。 |
* |
展开运算符 |
将数组传递给可变参数时使用。 |
六、运算符优先级
优先级 |
运算符 |
1 |
小括号 |
2 |
后缀运算符 ++、--、.、?.、? |
3 |
前缀运算符 -、+、++、--、! |
4 |
:、as、as? |
5 |
*、/、% |
6 |
+、- |
7 |
区间.. |
8 |
中缀运算符 |
9 |
Elvis运算符?: |
10 |
in、!in、is、!is |
11 |
<、>、<=、>= |
12 |
==、!=、===、!== |
13 |
&& |
14 |
|| |
15 |
=、+=、-=、*=、/=、%= |