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運算式、語句和塊