Kotlin are un set de operatori pentru a efectua operatori de aritmetică, atribuire, comparare și multe altele. Veți învăța să utilizați acești operatori în acest articol.
Operatorii sunt simboluri speciale (caractere) care efectuează operații pe operanzi (variabile și valori). De exemplu, +
este un operator care efectuează adăugarea.
În articolul Variabile Java, ați învățat să declarați variabile și să atribuiți valori variabilelor. Acum, veți învăța să folosiți operatorii care efectuează diverse operații asupra lor.
1. Operatori aritmetici
Iată o listă a operatorilor aritmetici din Kotlin:
Operatori aritmetici KotlinOperator | Sens |
---|---|
+ | Adăugare (utilizată și pentru concatenarea șirurilor) |
- | Operator de scădere |
* | Operator de multiplicare |
/ | Operator divizie |
% | Operator modul |
Exemplu: Operatori aritmetici
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") )
Când rulați programul, ieșirea va fi:
număr1 + număr2 = 16,0 număr1 - număr2 = 9,0 număr1 * număr2 = 43,75 număr1 / număr2 = 3,5714285714285716 număr1% număr2 = 2,0
+
Operatorul este , de asemenea , utilizat pentru concatenarea String
valorilor.
Exemplu: Concatenarea șirurilor
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) )
Când rulați programul, ieșirea va fi:
Vorbirea este ieftină. Arată-mi codul. - Linus Torvalds
Cum funcționează de fapt operatorii aritmetici?
Să presupunem că utilizați un +
operator aritmetic pentru a adăuga două numere a și b.
Sub capotă, expresia a + b
apelează a.plus(b)
funcția membru. plus
Operatorul este supraîncărcat să lucreze cu String
valori și alte tipuri de date de bază ( cu excepția Char și boolean).
// + operator pentru tipuri de bază operator fun plus (alt: Byte): Operator fun fun plus (alt: Scurt): Operator fun fun plus (alt: Int): Operator fun fun plus (alt: Long): Operator lung fun plus (altele: Float): operatorul plutitor fun plus (altele: Dublu): Dublu // pentru șirul de concatenare a șirului fun String? .plus (altele: Orice?): Șir
De asemenea, puteți utiliza +
operatorul pentru a lucra cu tipuri definite de utilizator (cum ar fi obiectele) prin plus()
funcția de supraîncărcare .
Lectură recomandată: supraîncărcare a operatorului Kotlin
Iată un tabel de operatori aritmetici și funcțiile lor corespunzătoare:
Expresie | Numele funcției | Se traduce în |
---|---|---|
a + b | la care se adauga | a.plus (b) |
a - b | minus | a.minus (b) |
a * b | ori | a.times (b) |
a / b | div | a.div (b) |
a% b | mod | a.mod (b) |
2. Operatori de misiune
Operatorii de atribuire sunt folosiți pentru a atribui valoare unei variabile. Am folosit deja un operator simplu de atribuire =
.
vârsta val = 5
Aici, 5 este atribuit vârstei variabile folosind =
operatorul.
Iată o listă cu toți operatorii de atribuire și funcțiile lor corespunzătoare:
Expresie | Echivalentă cu | Se traduce în |
---|---|---|
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) |
Exemplu: Operatori de atribuire
fun main(args: Array) ( var number = 12 number *= 5 // number = number*5 println("number = $number") )
Când rulați programul, ieșirea va fi:
număr = 60
Lectură recomandată: Operatori de sarcini de supraîncărcare în Kotlin.
3. Prefixul unar și Operatorii de creștere / descreștere
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
Iată câteva expresii care utilizează operatorul de invocare cu funcții corespunzătoare în Kotlin.
Expresie | Tradus în |
---|---|
a() | a.invoke() |
a(i) | a.invoke(i) |
a(i1, i2,… , in) | a.inkove(i1, i2,… , in) |
a(i) = b | a.set(i, b) |
În Kotlin, parantezele sunt traduse pentru a apela invoke
funcția de membru.
Lectură recomandată: Invocați supraîncărcarea operatorului în Kotlin
Funcționare Bitwise
Spre deosebire de Java, în Kotlin nu există operatori bit și shift. Pentru a efectua aceste sarcini, sunt utilizate diferite funcții (care acceptă notația infixă):
shl
- Semnată tura la stângashr
- Semnătura la dreaptaushr
- Schimbare la dreapta nesemnatăand
- Bitwise șior
- Bitwise sauxor
- Bitwise xorinv
- Inversie în biți
Accesați această pagină pentru a afla mai multe despre operațiile Bitwise din Kotlin.
De asemenea, nu există un operator ternar în Kotlin spre deosebire de Java.