Operátoři Kotlin: aritmetika, operátor přiřazení a další

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átory
Operá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í Stringhodnot.

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 + bvolá a.plus(b)členskou funkci. plusOperátor je přetížen na práci s Stringhodnotami 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 doleva
  • shr - Podepsaný posun doprava
  • ushr - Nepodepsaný posun doprava
  • and - Bitové a
  • or - Bitové nebo
  • xor - Bitový xor
  • inv - 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.

Zajímavé články...