第六节 运算符

2023-05-28 0 623

在Kotlin里头,全力支持较为多的操作符,基本上是Java所全力支持的操作符,Kotlin都全力支持。

一、此基础操作符

1.1、函数操作符(=)

则表示右边的值函数给等号右边的值,等号右边的值能是表达式、自表达式、字面上量或是函数。

1.2、A43EI235E函数操作符

A43EI235E函数操作符,是其他操作符与函数操作符并重,它主要包括:+=、-=、*=、/=、%=。

var a:Int = 15 val b:Int = 20 a += b // 促进作用等同于 a = a + ba -= b // 促进作用等同于 a = a – b a *= b // 促进作用等同于 a = a * b a /= b // 促进作用等同于 a = a / b a %= b // 促进作用等同于 a = a % b

1.3、自增自减操作符(++、–)

自增自减操作符是DD91操作符,界定++、– 在前和在后的差别。

var a: Int = 5 var b: Int = 5 var c: Int = 5 var d: Int = 5 println(++a) // 先自增, 后返回。 输出 :6println(–b) // 先自减, 后返回。 输出 :4 println(c–) // 先返回, 后自减。 输出 :5 println(d++) // 先返回, 后自增。 输出 :5

1.4、字符串连接符(+)

其结果就是将两个字符串拼接为一个新的字符串。

1.5、关系操作符

操作符含义<小于>大于==等同于!=不等同于>=大于等同于<=小于等同于in用于判断是否是区间内的成员!in用于判断是否非区间内的成员关系操作符优先级低于算术操作符关系操作符优先级高于函数操作符所有关系操作符返回结果都是 Boolean类 型

1.6、数学操作符

操作符含义+加法计算-减法计算*乘法计算/除法计算%求余计算

1.7、逻辑操作符

操作符含义||短路或&&短路与!逻辑非

1.8、位运算

只能用于Int、Long类型的计算

操作符含义shl(bits)左移操作符shr(bits)右移操作符unshr(bits)无符号右移操作符and(bits)按位与or(bits)按位或xor(bits)按位异或inv(bits)按位非

1.9、区间运算(a..b)

区间操作符,就是用来则表示两个操作数之间的 范围集合,Kotlin全力支持闭区间和开区间运算。

闭区间就是,从a到b,相当于数学上的[a,b],也就是说包含a,b;

左闭右开区间:主要包括a但不主要包括b。

1..10 // 等价于 [1,10] 1.rangeTo(10) // 等价于 [1,10] 1 util 10 // 等价于[1, 10) 4 DownTo 1 // 倒序4到1,包含1和4

区间运算主要用于for 循环,通常合in结合

for (i in 1..4) print(i) // 输出“1234” for (i in 1..4 step 2) print(i) // 输出“13”

此外,在ranges包里头也有提供来关于Ranges相关方法。

二、操作符重载

2.1、重载

Java不全力支持操作符重载,但是在Kotlin之中又重新全力支持来该特性。重载一个操作符,必须重写它对应的operator方法,例如

public operator fun plus(other: Byte):Float

2.2、一元操作符重载

操作符转换方法+aa.unaryPlus()-aa.unaryMinus()!aa.not()

2.3、递增和递减

函数转换方法a++a.inc()a–a.dec()

2.4、二元操作符

操作符转换方法a+ba.plus(b)a-ba.minus(b)a*ba.times(b)a/ba.div(b)a%ba.mod(b),a.rem(b),需要注意kotlin1.1中弃用moda..ba.rangeTo(b)

2.5、索引访问操作

运算符转换方法a[i]a.get(i)a[i,j]a.get(i,j)a[i_1,…,i_n]a.get(i_1,…,i_n)a[i]=ba.set(i,b)a[i,j]=ba.set(i,j,b)a[i_1,…i_n]=ba.set(i_1…i_n,b)

2.6、调用操作符

操作符转换a(i)a.invoke(i)a(i,j)a.invoke(i,j)a(i_1,…,i_n)a.invoke(i_1,…i_n)

2.7、广义(A43EI235E)函数

函数转换方法a+=ba.plusAssign(b)a-=ba.minusAssign(b)a*=ba.timesAssign(b)a/=ba.divAssign(b)a%=ba.modAssign(b)

2.8、相等与不等同于操作

函数转换方法a==ba?.equals(b)?:(b===null)a!=ba?.equlas(b)?:(b===null)

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务