Kotlin运算符

运算符是对操作数(值或变量)执行操作的特殊字符,Kotlin中有各种类型运算符。它们如下所示 -

  • 算术运算符
  • 关系运算符
  • 赋值运算符
  • 一元运算符
  • 按位运算
  • 逻辑运算符

1. 算术运算符

算术运算符用于执行基本的数学运算,如加法(+),减法(-),乘法(*),除法(/)等。

运算符 描述 表达式 转换为
+ 加法 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)

算术运算符的例子

fun main(args : Array<String>) {  
    var a=10;  
    var b=5;  
    println(a+b);  
    println(a-b);  
    println(a*b);  
    println(a/b);  
    println(a%b);  
}

执行上面示例代码,得到以下结果 -

15
5
50
2
0

2. 关系运算符

关系运算符显示操作数之间的关系和比较。以下是几种常见的关系运算符:

运算符 描述 表达式 转换为
> 大于 a>b a.compateTo(b)>0
< 小于 a<b a.compateTo(b)<0
>= 大于或等于 a>=b a.compateTo(b)>=0
<= 小于或等于 a<=b a?.equals(b)?:(b===null)
== 等于 a==b a?.equals(b)?:(b===null)
!= 不等于 a!=b !(a?.equals(b)?:(b===null))

关系运算符的示例

fun main(args : Array<String>) {  
    val a = 5  
    val b = 10  
    val max = if (a > b) {  
        println("a is greater than b.")  
        a  
    } else{  
        println("b is greater than a.")  
        b  
    }  
    println("max = $max")  
}

执行上面示例代码,得到以下结果 -

b is greater than a.
max = 10

3. 赋值运算符

赋值运算符(=)用于将值赋给另一个变量。值的分配从右到左。

运算符 描述 表达式 转换为
+= 相加和赋值 a+=b a.plusAssign(b)
-= 相减和赋值 a-=b a.minusAssign(b)
*= 相乘和赋值 a*=b a.timesAssign(b)
/= 相除和赋值 a/=b a.divAssign(b)
%= 模除和赋值 a%=b a.remAssign(b)

赋值运算符的示例

fun main(args : Array<String>) {  

    var a =20;var b=5  
    a+=b  
    println("a+=b :"+ a)  
    a-=b  
    println("a-=b :"+ a)  
    a*=b  
    println("a*=b :"+ a)  
    a/=b  
    println("a/=b :"+ a)  
    a%=b  
    println("a%=b :"+ a)  

}

执行上面示例代码,得到以下结果 -

a+=b :25
a-=b :20
a*=b :100
a/=b :20
a%=b :0

4. 一元运算符

一元运算符仅与单个操作数一起使用。 以下是一些常用一元运算符。

运算符 描述 表达式 转换为
+ 一元加 +a a.unaryPlus()
- 一元减 -a a.unaryMinus()
++ 递增1 ++a a.inc()
-- 递减1 --a a.dec()
! !a a.not()

一元运算符的示例

fun main(args: Array<String>){  
    var a=10  
    var b=5  
    var flag = true  
    println("+a :"+ +a)  
    println("-b :"+ -b)  
    println("++a :"+ ++a)  
    println("--b :"+ --b)  
    println("!flag :"+ !flag)  
}

执行上面示例代码,得到以下结果 -

+a :10
-b :-5
++a :11
--b :4
!flag :false

5. 逻辑运算符

逻辑运算符用于检查操作数之间的条件。逻辑运算符列表如下 -

运算符 描述 表达式 转换为
&& 如果所有表达式都为true,则返回true (a>b) && (a>c) (a>b) and (a>c)
ΙΙ 如果任何表达式为true,则返回true (a>b) ΙΙ (a>c) (a>b) or(a>c)
! 返回表达的补充 !a a.not()

逻辑运算符的示例

fun main(args: Array<String>){  
    var a=10  
    var b=5  
    var c=15  
    var flag = false  
    var result: Boolean  
    result = (a>b) && (a>c)  
    println("(a>b) && (a>c) :"+ result)  
    result = (a>b) || (a>c)  
    println("(a>b) || (a>c) :"+ result)  
    result = !flag  
    println("!flag :"+ result)  

}

执行上面示例代码,得到以下结果 -

(a>b) && (a>c) :false
(a>b) || (a>c) :true
!flag :true

6. 按位运算

在Kotlin中,没有任何特殊的按位运算符。都是使用命名函数完成按位运算。

运算符 描述 表达式
shl(bits) 符号左移 a.shl(b)
shr(bits) 符号右移 a.shr(b)
ushr(bits) 无符号右移 a.ushr(b)
and(bits) 按位与 a.and(b)
or(bits) 按位或 a.or(b)
xor(bits) 按位异或 a.xor(b)
inv() 按位反转 a.inv()

7. 按位运算的示例

fun main(args: Array<String>){  
    var a=10  
    var b=2  

    println("a.shl(b): "+a.shl(b))  
    println("a.shr(b): "+a.shr(b))  
    println("a.ushr(b:) "+a.ushr(b))  
    println("a.and(b): "+a.and(b))  
    println("a.or(b): "+a.or(b))  
    println("a.xor(b): "+a.xor(b))  
    println("a.inv(): "+a.inv())  

}

执行上面示例代码,得到以下结果 -

a.shl(b): 40
a.shr(b): 2
a.ushr(b:) 2
a.and(b): 2
a.or(b): 10
a.xor(b): 8
a.inv(): -11

上一篇:Kotlin类型转换

下一篇:Kotlin表达式、语句和块

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程