Kotlin 運算符

Kotlin有一組運算符,可以執(zhí)行算術(shù),賦值,比較運算符等。您將在本文中學(xué)習(xí)如何使用這些運算符。

運算符是對操作數(shù)(變量和值)執(zhí)行運算的特殊符號(字符)。例如,+ 是執(zhí)行加法的運算符。

Kotlin變量文章中,您學(xué)習(xí)了聲明變量并為變量分配值?,F(xiàn)在,您將學(xué)習(xí)使用運算符對它們執(zhí)行各種操作。

算術(shù)運算符

以下是Kotlin中的算術(shù)運算符列表:

Kotlin算術(shù)運算符
運算符描述
+加法運算符(也用于字符串連接)
-減法運算符
*乘法運算符
/除法運算符
求模運算符

示例:算術(shù)運算符

fun main(args: Array<String>) {

    val number1 = 12.5
    val number2 = 3.5
    var result: Double

    result = number1 + number2
    println("number1 + number2 = $result")

    result = number1 - number2
    println("number1 - number2 = $result")

    result = number1 * number2
    println("number1 * number2 = $result")

    result = number1 / number2
    println("number1 / number2 = $result")

    result = number1 % number2
    println("number1 % number2 = $result")
}

運行該程序時,輸出為:

number1 + number2 = 16.0
number1 - number2 = 9.0
number1 * number2 = 43.75
number1 / number2 = 3.5714285714285716
number1 % number2 = 2.0

+ 運算符,還可用于級聯(lián)String值,將字符串拼接在一起。

示例:字符串的串聯(lián)

fun main(args: Array<String>) {

    val start = "Talk is cheap. "
    val middle = "Show me the code. "
    val end = "- Linus Torvalds"

    val result = start + middle + end
    println(result)
}

運行該程序時,輸出為:

Talk is cheap. Show me the code. - Linus Torvalds

算術(shù)運算符實際上如何工作?

假設(shè)您正在使用 + 算術(shù)運算符將兩個數(shù)字a和b相加。

在后臺,表達式a + b 調(diào)用 a.plus(b) 成員函數(shù)。plus運算符被重載以處理 String 值和其他基本數(shù)據(jù)類型(CharBoolean除外)。

// + 基本類型的運算符
operator fun plus(other: Byte): Int
operator fun plus(other: Short): Int
operator fun plus(other: Int): Int
operator fun plus(other: Long): Long
operator fun plus(other: Float): Float
operator fun plus(other: Double): Double

// 對字符串串聯(lián)
operator fun String?.plus(other: Any?): String

您還可以使用 + 運算符通過重載plus()函數(shù)來處理用戶定義的類型(如對象)。

推薦閱讀: Kotlin 運算符重載

這是算術(shù)運算符及其相應(yīng)函數(shù)的列表:

表達式函數(shù)名稱用法
a + ba.plus(b)
a-ba.minus(b)
a * b
a.times(b)
a / b
a.div(b)
a%b求模a.mod(b)

賦值運算符

賦值運算符用于為變量賦值。我們之前已經(jīng)使用過簡單的 = 賦值運算符。

val age = 5

在此,使用 = 運算符將 5 分配給變量 age。

以下是所有賦值運算符及其對應(yīng)函數(shù)的列表:

表達式相當(dāng)于用法
a + = ba = a + ba.plusAssign(b)
a-= ba = a-ba.minusAssign(b)
a * = ba = a * ba.timesAssign(b)
a / = ba = a / ba.divAssign(b)
a%= ba = a%ba.modAssign(b)

示例:賦值運算符

fun main(args: Array<String>) {
    var number = 12

    number *= 5   // number = number*5
    println("number  = $number")
}

運行該程序時,輸出為:

number = 60

一元前綴 和 遞增/遞減運算符

這是一元運算符,它們的含義和相應(yīng)功能的表:

運算符描述表達式用法
+一元加+aa.unaryPlus()
-一元減-aa.unaryMinus()
!不是(反轉(zhuǎn)值)!aa.not()
++遞增:值加1++aa.inc()
--遞減:值減1--a
a.dec()

示例:一元運算符

fun main(args: Array<String>) {
    val a = 1
    val b = true
    var c = 1

    var result: Int
    var booleanResult: Boolean

    result = -a
    println("-a = $result")

    booleanResult = !b
    println("!b = $booleanResult")

    --c
    println("--c = $c")
}

運行該程序時,輸出為:

-a = -1
!b = false
--c = 0

比較運算符 和 相等運算符

這是一個相等和比較運算符,它們的含義以及相應(yīng)函數(shù)的列表:

運算符描述表達式用法
>大于a> ba.compareTo(b)> 0
<小于a <ba.compareTo(b)<0
> =大于 或 等于a> = ba.compareTo(b)>= 0
<=小于 或 等于a <= ba.compareTo(b)<= 0
==等于a == ba?.equals(b)?:(b === null)
!=不等于a!= b!(a?.equals(b)?:(b ===null))

比較和相等運算符用于控制流,例如:if 表達式when表達式 循環(huán)。

示例:比較和相等運算符

fun main(args: Array<String>) {

    val a = -12
    val b = 12

    //使用大于運算符
    val max = if (a > b) {
        println("a大于b")
        a
    } else {
        println("b大于a")
        b
    }

    println("max = $max")
}

運行該程序時,輸出為:

b大于a
max = 12

邏輯運算符

Kotlin中有兩個邏輯運算符:|| 和 &&

這是邏輯運算符,它們的含義和相應(yīng)函數(shù)的表。

運算符描述表達式對應(yīng)函數(shù)
||如果任一布爾表達式為true,則為true
(a>b)||(a<c)(a>b)or(a<c)
&&如果所有布爾表達式均為true,則為true(a>b)&&(a<c)(a>b)and(a<c)

請注意,or 和 and 是支持中綴表示法的函數(shù)。

邏輯運算符用于控制流,例如 if表達式when表達式 循環(huán)。

示例:邏輯運算符

fun main(args: Array<String>) {

    val a = 10
    val b = 9
    val c = -1
    val result: Boolean

    // result 為 true 是最大
    result = (a>b) && (a>c) // result = (a>b) and (a>c)
    println(result)
}

運行該程序時,輸出為:

true

in 運算符

in運算符用于檢查一個對象是否屬于一個集合。

運算符表達式用法
in
a in bb.contains(a)
!in
a !in b
!b.contains(a)

示例:in 運算符

fun main(args: Array<String>) {

    val numbers = intArrayOf(1, 4, 42, -3)

    if (4 in numbers) {
        println("numbers 數(shù)組包含 4.")
    }
}

運行該程序時,輸出為:

numbers 數(shù)組包含  4.

索引訪問運算符

以下是在Kotlin中使用帶有相應(yīng)函數(shù)的索引訪問運算符的一些表達式。

表達用法
a[i]a.get(i)
a[i, n]a.get(i, n)
a[i1, i2, ..., in]a.get(i1, i2, ..., in)
a[i] = ba.set(i, b)
a[i, n] = ba.set(i, n, b)
a[i1, i2, ..., in] = ba.set(i1, i2, ..., in, b)

示例:索引訪問運算符

fun main(args: Array<String>) {

    val a  = intArrayOf(1, 2, 3, 4, - 1)
    println(a[1])   
    a[1]= 12
    println(a[1])
}

運行該程序時,輸出為:

2
12

invoke 運算符

以下是Kotlin中使用帶有相應(yīng)函數(shù)的invoke運算符的一些表達式。

表達翻譯成
a()a.invoke()
a(i)a.invoke(i)
a(i1, i2, ..., in)a.inkove(i1, i2, ..., in)
a[i] = ba.set(i, b)

在Kotlin中,括號被轉(zhuǎn)換為調(diào)用invoke成員函數(shù)。

按位運算

與Java不同,Kotlin中沒有按位和移位運算符。為了執(zhí)行這些任務(wù),使用了各種功能(支持中綴符號):

  • shl - 簽名左移

  • shr - 右移簽名

  • ushr - 無符號右移

  • and - 按位與

  • or - 按位或

  • xor - 按位異或

  • inv - 按位反

訪問此頁面以了解有關(guān)Kotlin中按位運算更多信息。

另外,與Java不同,Kotlin中沒有三元運算符。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清