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
>= 大于或等于 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 =、+=、-=、*=、/=、%=

你可能感兴趣的:(Kotlin基础认识 (7)运算符)