Kotlin基础认识 (7)运算符
2019-05-23 本文已影响0人
狼性代码人
一、算术运算符
- 一元运算符
运算符 | 名称 | 说明 | 例子 |
---|---|---|---|
- | 取反符号 | 取反运算 | 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 | =、+=、-=、*=、/=、%= |