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
02. 關係運算符
關係運算符顯示操作數之間的關係和比較。以下是幾種常見的關係運算符:
運算符
描述
表達式
轉換爲
>
大於
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 = 103. 賦值運算符
賦值運算符(=)用於將值賦給另一個變量。值的分配從右到左。
運算符
描述
表達式
轉換爲
+=
相加和賦值
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 :04. 一元運算符
一元運算符僅與單個操作數一起使用。 以下是一些常用一元運算符。
運算符
描述
表達式
轉換爲
+
一元加
+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 :false5. 邏輯運算符
邏輯運算符用於檢查操作數之間的條件。邏輯運算符列表如下 -
運算符
描述
表達式
轉換爲
&&
如果所有表達式都爲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 :true6. 按位運算
在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