Kotlinil on aritmeetika, määrangu, võrdlusoperaatorite ja muu täitmiseks operaatorite komplekt. Selles artiklis õpitakse neid operaatoreid kasutama.
Operaatorid on spetsiaalsed sümbolid (tähemärgid), mis teostavad operante (muutujad ja väärtused). Näiteks +on operaator, kes teostab liitmist.
Artiklis Java muutujad õppisite muutujaid deklareerima ja muutujaile väärtusi määrama. Nüüd saate teada, kuidas operaatorid teevad nendega erinevaid toiminguid.
1. Aritmeetikaoperaatorid
Siin on Kotlini aritmeetikaoperaatorite loend:
Kotlini aritmeetikaoperaatorid| Operaator | Tähendus |
|---|---|
| + | Lisa (kasutatakse ka stringide liitmiseks) |
| - | Lahutamise operaator |
| * | Korrutamise operaator |
| / | Jaoskonna operaator |
| % | Modulioperaator |
Näide: Aritmeetikaoperaatorid
fun main(args: Array) ( 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") )
Programmi käivitamisel on väljund järgmine:
number1 + number2 = 16,0 number1 - arv2 = 9,0 number1 * arv2 = 43,75 number1 / number2 = 3,5714285714285716 number1% arv2 = 2,0
+Operaator kasutatakse ka konkatenatsioon Stringväärtusi.
Näide: stringide liitmine
fun main(args: Array) ( val start = "Talk is cheap. " val middle = "Show me the code. " val end = "- Linus Torvalds" val result = start + middle + end println(result) )
Programmi käivitamisel on väljund järgmine:
Rääkimine on odav. Näita mulle koodi. - Linus Torvalds
Kuidas aritmeetikaoperaatorid tegelikult töötavad?
Oletame, et kasutate +kahe numbri a ja b lisamiseks aritmeetilist operaatorit.
Kapoti all a + bkutsub väljend liikmefunktsiooni a.plus(b). plusOperaator on ülekoormatud töö Stringväärtuste ja muude lähteandmete tüübid (va Char ja Boolean).
// + põhitüüpide operaator operaator lõbus pluss (muu: bait): keskmine operaatori lõbus pluss (muu: lühike): keskmine operaatori lõbus pluss (muu: keskmine): keskmine operaatori lõbus pluss (muu: pikk): pikk operaatori lõbus pluss (muu: ujuk): ujukioperaatori lõbus pluss (muu: kahekordne): kahekordne // stringide liitmise operaatori lõbuks String? .plus (muu: mõni?): string
+Operaatori abil saate plus()funktsiooni ülekoormuse abil töötada ka kasutaja määratletud tüüpidega (nagu objektid) .
Soovitatav lugemine: Kotlini operaatori ülekoormus
Siin on aritmeetiliste operaatorite ja neile vastavate funktsioonide tabel:
| Väljendus | Funktsiooni nimi | Tõlgib |
|---|---|---|
| a + b | pluss | a. pluss (b) |
| a - b | miinus | a. miinus (b) |
| a * b | korda | a. korda (b) |
| a / b | div | a.div (b) |
| a% b | mod | a.mod (b) |
2. Ülesandeoperaatorid
Muutujale väärtuse määramiseks kasutatakse määranguoperaatoreid. Oleme juba varem lihtsat määranguoperaatorit kasutanud =.
vanus = 5
Siin määratakse =operaatori abil muutuvale vanusele 5 .
Siin on loetelu kõigist määranguoperaatoritest ja neile vastavatest funktsioonidest:
| Väljendus | Samaväärne | Tõlgib |
|---|---|---|
| a + = b | a = a + b | a.plusAssign (b) |
| a - = b | a = a - b | a.minusAssign (b) |
| a * = b | a = a * b | a.timesAssign (b) |
| a / = b | a = a / b | a.divAssign (b) |
| a% = b | a = a% b | a.modAssign (b) |
Näide: ülesandeoperaatorid
fun main(args: Array) ( var number = 12 number *= 5 // number = number*5 println("number = $number") )
Programmi käivitamisel on väljund järgmine:
arv = 60
Soovitatav lugemine: Kotlini ülesandeoperaatorite ülekoormamine.
3. Unary eesliide ja kasvu- / kahanemisoperaatorid
Siin on tabel ühetaolistest operaatoritest, nende tähendusest ja vastavatest funktsioonidest:
| Operaator | Tähendus | Väljendus | Tõlgib |
|---|---|---|---|
| + | Unary pluss | + a | a.unaryPlus () |
| - | Unaarne miinus (pöördmärk) | -a | a. unaryMinus () |
| ! | mitte (pöördväärtus) | ! a | a.not () |
| ++ | Inkrement: suurendab väärtust 1 võrra | ++ a | a.inc () |
| - | Vähendamine: vähendab väärtust 1 võrra | --a | a.dets () |
Näide: Unary Operaatorid
fun main(args: Array) ( 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") )
Programmi käivitamisel on väljund järgmine:
-a = -1 !b = false --c = 0
Soovitatav lugemine: Unary operaatorite ülekoormamine
4. Võrdlus- ja võrdõiguslikkuse operaatorid
Siin on võrdõiguslikkuse ja võrdlusoperaatorite tabel, nende tähendus ja vastavad funktsioonid:
| Operaator | Tähendus | Väljendus | Tõlgib |
|---|---|---|---|
| > | suurem kui | a> b | a. võrdlus (b)> 0 |
| < | vähem kui | a <b | a. võrdlus (b) <0 |
| > = | suurem või võrdne | a> = b | a. võrdlus (b)> = 0 |
| <= | väiksem või võrdne | a <= b | a. võrdlus (b) <= 0 |
| == | on võrdne | a == b | a?. võrdub (b)?: (b === null) |
| ! = | pole võrdne | a! = b | !(a?.equals(b) ?: (b === null)) |
Comparison and equality operators are used in control flow such as if expression , when expression , and loops .
Example: Comparison and Equality Operators
fun main(args: Array) ( val a = -12 val b = 12 // use of greater than operator val max = if (a> b) ( println("a is larger than b.") a ) else ( println("b is larger than a.") b ) println("max = $max") )
When you run the program, the output will be:
b is larger than a. max = 12
Recommended Reading: Overloading of Comparison and Equality Operators in Kotlin
5. Logical Operators
There are two logical operators in Kotlin: || and &&
Here's a table of logical operators, their meaning, and corresponding functions.
| Operator | Description | Expression | Corresponding Function |
|---|---|---|---|
| || | true if either of the Boolean expression is true | (a>b)||(a | (a>b)or(a |
| && | true if all Boolean expressions are true | (a>b)&&(a | (a>b)and(a |
Note that, or and and are functions that support infix notation.
Logical operators are used in control flow such as if expression , when expression , and loops .
Example: Logical Operators
fun main(args: Array) ( val a = 10 val b = 9 val c = -1 val result: Boolean // result is true is a is largest result = (a>b) && (a>c) // result = (a>b) and (a>c) println(result) )
When you run the program, the output will be:
true
Recommended Reading: Overloading of Logical Operators in Kotlin
6. in Operator
The in operator is used to check whether an object belongs to a collection.
| Operator | Expression | Translates to |
|---|---|---|
| in | a in b | b.contains(a) |
| !in | a !in b | !b.contains(a) |
Example: in Operator
fun main(args: Array) ( val numbers = intArrayOf(1, 4, 42, -3) if (4 in numbers) ( println("numbers array contains 4.") ) )
When you run the program, the output will be:
numbers array contains 4.
Recommended Reading: Kotlin in Operator Overloading
7. Index access Operator
Here are some expressions using index access operator with corresponding functions in Kotlin.
| Expression | Translated to |
|---|---|
a(i) | a.get(i) |
a(i, n) | a.get(i, n) |
a(i1, i2,… , in) | a.get(i1, i2,… , in) |
a(i) = b | a.set(i, b) |
a(i, n) = b | a.set(i, n, b) |
a(i1, i2,… , in) = b | a.set(i1, i2,… , in, b) |
Example: Index access Operator
fun main(args: Array) ( val a = intArrayOf(1, 2, 3, 4, - 1) println(a(1)) a(1)= 12 println(a(1)) )
When you run the program, the output will be:
2 12
Recommended Reading: Kotlin Index access operator Overloading
8. Invoke Operator
Siin on mõned väljendid, mis kasutavad Kotlinis vastavate funktsioonidega invokeerimisoperaatorit.
| Väljendus | Tõlgitud keelde |
|---|---|
a() | a.invoke() |
a(i) | a.invoke(i) |
a(i1, i2,… , in) | a.inkove(i1, i2,… , in) |
a(i) = b | a.set(i, b) |
Kotlinis tõlgitakse sulgudes kõneliikme invokefunktsioon.
Soovitatav lugemine: kutsuge operaatori ülekoormust Kotlinis
Bitipõhine töö
Erinevalt Java-st pole Kotlinis bitikiiruse ja bitshift-operaatorit. Nende ülesannete täitmiseks kasutatakse mitmesuguseid funktsioone (toetades infiksi tähistamist):
shl- Allkirjastatud nihe vasakuleshr- Allkirjastatud nihe paremaleushr- allkirjastamata nihe paremaleand- Bititi jaor- bitipidi võixor- bitipidi xorinv- Pisipöördumine
Külasta seda lehte, et saada lisateavet Bitlini operatsioonide kohta Kotlinis.
Samuti pole Kotlinis erinevalt Java-st kolmekomponentset operaatorit.








