从零学习kotlin之运算符与表达式

kotlin运算符与表达式

  1. 和java相同的运算符

1.1单目前缀运算符

	有+、-、!这三个。

	+a = a.unaryPlus()

	-a = a.unaryMinus()

	!a = a.not()

1.2自加自减运算符

运算符 对应方法
a++ a.inc()
a-- a.dec()

注:++不完全与对应方法想等,因为a++ 与++a的含义不同

1.3双目运算符

运算符 对应方法
a+b a.plus(b)
a-b a.minus(b)
a*b a.times(b)
a/b a.div(b)
a%b a.rem(b)
a…b a.rangeTo(b)

1.4 in和!in

a in b b中是否包含a

运算符 对应方法
a in b b.contains(a)
a !in b !b.minus(a

1.5 索引访问符 []

运算符 对应方法
a[i] a.get(i)
a[i,j] a.get(i,j)
a[i_1, … ., i_n] a.get(i_l, … ., i_n)
a[i]=b a.set(i,b)
a[i,j]=b a.set(i,j,b)
a[i_1, … ., i_n]=b a.set(i_1, … ., i-n,b)

1.6调用运算符

运算符 对应方法
a() a.invoke()
a(b) a.invoke(b)
a(b1, b2) a.invoke(b1, b2)
a(b1, b2, b3, … ) a.invoke(b1, b2, b3, … )

1.7相等与不等运算符

	==与equals相同
  1. 位运算符

操作符 含义 用法
and(bits) 按位与 1 and 2
or(bits) 按位或 1 or 2
inv(bits) 按位非 1.inv()
xor(bits) 按位异或 1 xor 2
shl(bits) 按位左移 1.shl(2)
shr(bits) 按位右移 1.shr(2);
ushr(bits) 无符号按位右移 1.ushr(2);

(1)异或

两位相同时返回1 否则返回0

(2)左移1位

右边空余的0补齐 相当于乘2

(3)右移1位

正数右移

如果是正数左边用0补齐 相当于除2 (向下取整)

  /     

6>>1=3 6/2=3
5>>1=2 5/2=2
4>>1=2 4/2=2
3>>1=1 3/2=1
2>>1=1 -2/2=1
1>>1=0 1/2=0

负数的右移

 	/      

-6>>1=-3 -6/2=-3
-5>>1=-3 -5/2=-2
-4>>1=-2 -4/2=-2
-3>>1=-2 -3/2=-1
-2>>1=-1 -2/2=-1
-1>>1=-1 -1/2=0

如果是负数左边用1补齐

当是偶数时与除2想等

如果是奇数 除以2相当于向0取整 右移1位相当于向负无穷取整

(4)无符号右移

不管正负数,左边都用0补齐

3 区间运算符

3.1闭区间运算符

a…b代表从a到b到闭区间 相当于数学中的 [a,b] ,可以配合in操作符实现 for循环的遍历

for(num in 2..6){
    println(num)
}

3.2左闭右开区间

a until b 代表从a到b的左闭右开区间,相当于数学中的[a,b)(包含a,不包含b)

3.3反向区间

a downto b 可以表示从大到小的闭区间

3.4区间步长

默认的步长都等于1,可以通过step设置步长 这样每次都是以2的步长进行遍历

for(num in 2..6 step 2){
    println(num)
}

4运算重载符

所有的运算符都是依靠特定名称的方法支撑,并使用operator符号修饰。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值