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