Kotlin má sadu operátorů k provádění aritmetických, přiřazovacích, srovnávacích operátorů a dalších. V tomto článku se naučíte tyto operátory používat.
Operátory jsou speciální symboly (znaky), které provádějí operace s operandy (proměnnými a hodnotami). Například +
je operátor, který provádí sčítání.
V článku o proměnných Java jste se naučili deklarovat proměnné a přiřazovat hodnoty proměnným. Nyní se naučíte používat operátory k provádění různých operací.
1. Aritmetické operátory
Zde je seznam aritmetických operátorů v Kotlin:
Kotlinské aritmetické operátoryOperátor | Význam |
---|---|
+ | Sčítání (také se používá pro zřetězení řetězců) |
- | Operátor odčítání |
* | Operátor násobení |
/ | Provozovatel divize |
% | Provozovatel modulu |
Příklad: Aritmetické operátory
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") )
Když spustíte program, výstup bude:
number1 + number2 = 16,0 number1 - number2 = 9,0 number1 * number2 = 43,75 number1 / number2 = 3,5714285714285716 number1% number2 = 2,0
+
Operátor se používá také pro zřetězení String
hodnot.
Příklad: Zřetězení řetězců
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) )
Když spustíte program, výstup bude:
Mluvení je levné. Ukaž mi kód. - Linus Torvalds
Jak aritmetické operátory ve skutečnosti fungují?
Předpokládejme, že +
k přidání dvou čísel aab používáte aritmetický operátor.
Pod kapotou výraz a + b
volá a.plus(b)
členskou funkci. plus
Operátor je přetížen na práci s String
hodnotami a dalších základních datových typů (s výjimkou Char a Boolean).
// + operátor pro základní typy 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 // for string concatenation operator fun String? .plus (other: Any?): String
+
Operátor můžete také použít k práci s uživatelem definovanými typy (například objekty) pomocí plus()
funkce přetížení .
Doporučené čtení: Přetížení operátora Kotlin
Zde je tabulka aritmetických operátorů a jejich odpovídajících funkcí:
Výraz | Název funkce | Překládá do |
---|---|---|
a + b | Plus | a.plus (b) |
a - b | mínus | a. minus (b) |
a * b | krát | a.krát (b) |
a / b | div | a.div (b) |
a% b | mod | a.mod (b) |
2. Operátoři přiřazení
Operátory přiřazení se používají k přiřazení hodnoty proměnné. Již jsme použili operátor jednoduchého přiřazení =
.
věkový věk = 5
Zde je 5 přiřazeno proměnnému věku pomocí =
operátoru.
Zde je seznam všech operátorů přiřazení a jejich odpovídajících funkcí:
Výraz | Ekvivalentní | Překládá do |
---|---|---|
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) |
Příklad: Operátoři přiřazení
fun main(args: Array) ( var number = 12 number *= 5 // number = number*5 println("number = $number") )
Když spustíte program, výstup bude:
číslo = 60
Doporučené čtení: Přetížení operátorů přiřazení v Kotlin.
3. Unární předpona a operátory přírůstku / snížení
Zde je tabulka unárních operátorů, jejich význam a odpovídající funkce:
Operátor | Význam | Výraz | Překládá do |
---|---|---|---|
+ | Unární plus | + a | a.unaryPlus () |
- | Unární mínus (inverzní znak) | -A | a.unaryMinus () |
! | ne (hodnota invertuje) | !A | a.not () |
++ | Přírůstek: zvyšuje hodnotu o 1 | ++ a | a.inc () |
- | Snížení: sníží hodnotu o 1 | --A | a.dec () |
Příklad: Unární operátoři
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") )
Když spustíte program, výstup bude:
-a = -1 !b = false --c = 0
Doporučené čtení: Přetížení unárních operátorů
4. Provozovatelé srovnávání a rovnosti
Tady je tabulka operátorů rovnosti a porovnání, jejich významu a odpovídajících funkcí:
Operátor | Význam | Výraz | Překládá do |
---|---|---|---|
> | větší než | a> b | a.compareTo (b)> 0 |
< | méně než | a <b | a.compareTo (b) <0 |
> = | větší než nebo se rovná | a> = b | a.compareTo (b)> = 0 |
<= | menší než nebo se rovná | a <= b | a.compareTo (b) <= 0 |
== | je rovný | a == b | a? .equals (b)?: (b === null) |
! = | nerovná se | 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
Zde je několik výrazů používajících operátor invoke s odpovídajícími funkcemi v Kotlin.
Výraz | Přeloženo do |
---|---|
a() | a.invoke() |
a(i) | a.invoke(i) |
a(i1, i2,… , in) | a.inkove(i1, i2,… , in) |
a(i) = b | a.set(i, b) |
V Kotlinu jsou závorky přeloženy do volání invoke
členské funkce.
Doporučené čtení: Vyvolání přetížení operátora v Kotlin
Bitová operace
Na rozdíl od Javy neexistují v Kotlinu žádní bitoví a bitoví operátoři. K provedení těchto úkolů se používají různé funkce (podporující notaci infix):
shl
- Podepsaný posun dolevashr
- Podepsaný posun dopravaushr
- Nepodepsaný posun dopravaand
- Bitové aor
- Bitové neboxor
- Bitový xorinv
- Bitová inverze
Na této stránce najdete další informace o bitových operacích v Kotlinu.
Na rozdíl od Javy také v Kotlinu neexistuje ternární operátor.