Operatori Kotlin: Aritmetică, Operator de atribuire și multe altele

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 Kotlin
Operator 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 Stringvalorilor.

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 + bapelează a.plus(b)funcția membru. plusOperatorul este supraîncărcat să lucreze cu Stringvalori ș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 invokefuncț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ânga
  • shr - Semnătura la dreapta
  • ushr - Schimbare la dreapta nesemnată
  • and - Bitwise și
  • or - Bitwise sau
  • xor - Bitwise xor
  • inv - 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.

Articole interesante...