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 OperatorenOperator | 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 String
Werten 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 + b
ruft der Ausdruck die a.plus(b)
Mitgliedsfunktion auf. Der plus
Operator ist überladen, um mit String
Werten 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 invoke
Mitgliedsfunktion 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 linksshr
- Signierte Verschiebung nach rechtsushr
- Vorzeichenlose Verschiebung nach rechtsand
- Bitweise undor
- Bitweise oderxor
- Bitweises xorinv
- 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.