Kotlin-Operatoren: Arithmetik, Zuweisungsoperator und mehr

Kotlin verfügt über eine Reihe von Operatoren, mit denen Sie Arithmetik-, Zuweisungs-, Vergleichsoperatoren und mehr ausführen können. In diesem Artikel erfahren Sie, wie Sie diese Operatoren verwenden.

Operatoren sind spezielle Symbole (Zeichen), die Operationen an Operanden (Variablen und Werten) ausführen. Ist beispielsweise +ein Operator, der eine Addition ausführt.

Im Artikel über Java-Variablen haben Sie gelernt, Variablen zu deklarieren und Variablen Werte zuzuweisen. Jetzt lernen Sie, wie Sie mit Operatoren verschiedene Operationen ausführen.

1. Arithmetische Operatoren

Hier ist eine Liste der arithmetischen Operatoren in Kotlin:

Kotlin Arithmetische Operatoren
Operator Bedeutung
+ Addition (wird auch für die Verkettung von Zeichenfolgen verwendet)
- - Subtraktionsoperator
* * Multiplikationsoperator
/. Abteilungsbetreiber
%. Moduloperator

Beispiel: Arithmetische Operatoren

 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") ) 

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 Nummer1 + Nummer2 = 16,0 Nummer1 - Nummer2 = 9,0 Nummer1 * Nummer2 = 43,75 Nummer1 / Nummer2 = 3,5714285714285716 Nummer1% Nummer2 = 2,0

Der +Operator wird auch zur Verkettung von StringWerten verwendet.

Beispiel: Verkettung von Strings

 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) )

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

Reden ist billig. Zeig mir den Code. - Linus Torvalds

Wie funktionieren arithmetische Operatoren tatsächlich?

Angenommen, Sie verwenden den +arithmetischen Operator, um zwei Zahlen a und b hinzuzufügen.

Unter der Haube a + bruft der Ausdruck die a.plus(b)Mitgliedsfunktion auf. Der plusOperator ist überladen, um mit StringWerten und anderen grundlegenden Datentypen (außer Char und Boolean) zu arbeiten.

 // + Operator für Grundtypen Operator Spaß plus (andere: Byte): Int Operator Spaß plus (andere: Kurz): Int Operator Spaß plus (andere: Int): Int Operator Spaß plus (andere: Lang): Langer Operator Spaß plus (other: Float): Float-Operator fun plus (other: Double): Double // für String-Verkettungsoperator fun String? .plus (other: Any?): String 

Sie können den +Operator auch verwenden , um mit benutzerdefinierten Typen (wie Objekten) zu arbeiten, indem Sie die plus()Funktion überladen .

Empfohlene Lektüre: Überladen des Kotlin-Bedieners

Hier ist eine Tabelle mit arithmetischen Operatoren und ihren entsprechenden Funktionen:

Ausdruck Funktionsname Wird übersetzt in
a + b Plus a.plus (b)
a - b Minus- a.minus (b)
a * b mal a.times (b)
a / b div a.div (b)
a% b mod a.mod (b)

2. Zuweisungsoperatoren

Zuweisungsoperatoren werden verwendet, um einer Variablen einen Wert zuzuweisen. Wir haben bereits zuvor einen einfachen Zuweisungsoperator verwendet =.

 val age = 5

Hier wird 5 mit dem =Operator dem variablen Alter zugeordnet .

Hier ist eine Liste aller Zuweisungsoperatoren und ihrer entsprechenden Funktionen:

Ausdruck Gleichwertig Wird übersetzt in
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)

Beispiel: Zuweisungsoperatoren

 fun main(args: Array) ( var number = 12 number *= 5 // number = number*5 println("number = $number") )

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 Anzahl = 60

Empfohlene Lektüre: Überladen von Zuweisungsoperatoren in Kotlin.

3. Unäre Präfix- und Inkrementierungs- / Dekrementierungsoperatoren

Here's a table of unary operators, their meaning, and corresponding functions:

Operator Meaning Expression Translates to
+ Unary plus +a a.unaryPlus()
- Unary minus (inverts sign) -a a.unaryMinus()
! not (inverts value) !a a.not()
++ Increment: increases value by1 ++a a.inc()
-- Decrement: decreases value by 1 --a a.dec()

Example: Unary Operators

 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") )

When you run the program, the output will be:

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

Recommended Reading: Overloading Unary Operators

4. Comparison and Equality Operators

Here's a table of equality and comparison operators, their meaning, and corresponding functions:

Operator Meaning Expression Translates to
> greater than a> b a.compareTo(b)> 0
< less than a < b a.compareTo(b) < 0
>= greater than or equals to a>= b a.compareTo(b)>= 0
<= less than or equals to a < = b a.compareTo(b) <= 0
== is equal to a == b a?.equals(b) ?: (b === null)
!= not equal to 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

Hier sind einige Ausdrücke, die den Aufrufoperator mit entsprechenden Funktionen in Kotlin verwenden.

Ausdruck Übersetzt in
a() a.invoke()
a(i) a.invoke(i)
a(i1, i2,… , in) a.inkove(i1, i2,… , in)
a(i) = b a.set(i, b)

In Kotlin werden Klammern übersetzt, um die invokeMitgliedsfunktion aufzurufen .

Empfohlene Lektüre: Rufen Sie Operator Overloading in Kotlin auf

Bitweiser Betrieb

Im Gegensatz zu Java gibt es in Kotlin keine bitweisen und Bitshift-Operatoren. Um diese Aufgabe auszuführen, werden verschiedene Funktionen (unterstützende Infixnotation) verwendet:

  • shl - Signierte Verschiebung nach links
  • shr - Signierte Verschiebung nach rechts
  • ushr - Vorzeichenlose Verschiebung nach rechts
  • and - Bitweise und
  • or - Bitweise oder
  • xor - Bitweises xor
  • inv - Bitweise Inversion

Besuchen Sie diese Seite, um mehr über Bitwise Operations in Kotlin zu erfahren.

Außerdem gibt es in Kotlin im Gegensatz zu Java keinen ternären Operator.

Interessante Beiträge...