Operatori di Kotlin: aritmetica, operatore di assegnazione e altro

Kotlin ha una serie di operatori per eseguire operazioni aritmetiche, di assegnazione, di confronto e altro ancora. Imparerai a usare questi operatori in questo articolo.

Gli operatori sono simboli speciali (caratteri) che eseguono operazioni sugli operandi (variabili e valori). Ad esempio, +è un operatore che esegue l'addizione.

Nell'articolo sulle variabili Java, hai imparato a dichiarare le variabili e assegnare valori alle variabili. Ora imparerai a usare gli operatori per eseguire varie operazioni su di essi.

1. Operatori aritmetici

Ecco un elenco di operatori aritmetici in Kotlin:

Operatori aritmetici di Kotlin
Operatore Senso
+ Addizione (usata anche per la concatenazione di stringhe)
- Operatore di sottrazione
* Operatore di moltiplicazione
/ Operatore di divisione
% Operatore modulo

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

Quando esegui il programma, l'output sarà:

 numero1 + numero2 = 16,0 numero1 - numero2 = 9,0 numero1 * numero2 = 43,75 numero1 / numero2 = 3,5714285714285716 numero1% numero2 = 2,0

L' +operatore viene utilizzato anche per la concatenazione di Stringvalori.

Esempio: concatenazione di stringhe

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

Quando esegui il programma, l'output sarà:

Parlare è economico. Mostrami il codice. - Linus Torvalds

Come funzionano effettivamente gli operatori aritmetici?

Supponi di utilizzare +l'operatore aritmetico per aggiungere due numeri a e b.

Dietro le quinte, l'espressione a + bchiama a.plus(b)funzione membro. L' plusoperatore è sovraccarico per lavorare con Stringvalori e altri tipi di dati di base (eccetto Char e Boolean).

 // + operatore per i tipi base 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 (altro: Float): Float operator fun plus (other: Double): Double // for string concatenation operator fun String? .plus (other: Any?): String 

È inoltre possibile utilizzare l' +operatore per lavorare con i tipi definiti dall'utente (come gli oggetti) sovraccaricando la plus()funzione.

Letture consigliate: sovraccarico dell'operatore di Kotlin

Ecco una tabella di operatori aritmetici e le loro funzioni corrispondenti:

Espressione Nome della funzione Si traduce in
a + b più a.plus (b)
a - b meno a. meno (b)
a * b volte a. volte (b)
a / b div a.div (b)
a% b mod a.mod (b)

2. Operatori di assegnazione

Gli operatori di assegnazione vengono utilizzati per assegnare un valore a una variabile. Abbiamo già utilizzato l'operatore di assegnazione semplice in =precedenza.

 val età = 5

Qui, 5 è assegnato alla variabile età utilizzando l' =operatore.

Ecco un elenco di tutti gli operatori di assegnazione e delle loro funzioni corrispondenti:

Espressione Equivalente a Si traduce 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)

Esempio: operatori di assegnazione

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

Quando esegui il programma, l'output sarà:

 numero = 60

Letture consigliate: sovraccarico degli operatori di assegnazione in Kotlin.

3. Prefisso unario e operatori di incremento / decremento

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

Ecco alcune espressioni che utilizzano l'operatore invoke con le funzioni corrispondenti in Kotlin.

Espressione Tradotto 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, le parentesi vengono tradotte per chiamare la invokefunzione membro.

Lettura consigliata: richiama il sovraccarico dell'operatore in Kotlin

Operazione bit per bit

A differenza di Java, in Kotlin non esistono operatori bit a bit e bitshift. Per eseguire queste attività, vengono utilizzate varie funzioni (che supportano la notazione infissa):

  • shl - Spostamento firmato a sinistra
  • shr - turno firmato a destra
  • ushr - Spostamento a destra senza segno
  • and - Bitwise e
  • or - Bitwise o
  • xor - Bitwise xor
  • inv - Inversione bit per bit

Visita questa pagina per ulteriori informazioni sulle operazioni bit per bit in Kotlin.

Inoltre, non esiste un operatore ternario in Kotlin a differenza di Java.

Articoli interessanti...