English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Operatori in Kotlin

Kotlin ha un insieme di operatori che possono eseguire operazioni aritmetiche, assegnazione e confronti. In questo articolo imparerai come utilizzare questi operatori.

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

InVariabili in KotlinNell'articolo, hai imparato a dichiarare variabili e assegnare loro valori. Ora, imparerai a eseguire vari operazioni su di loro utilizzando gli operatori.

Operatori aritmetici

Ecco l'elenco degli operatori aritmetici in Kotlin:

Operatori aritmetici Kotlin
operatorDescrizione
+Operatore di aggiunta (utilizzato anche per la connessione delle stringhe)
-Operatore di sottrazione
*Operatore di moltiplicazione
/Operatore di divisione
Operatore modulo

Esempio: operatori aritmetici

fun main(args: Array<String>) {
    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")
}

When running the program, the output is:

number1 + number2 = 16.0
number1 - number2 = 9.0
number1 * number2 = 43.75
number1 / number2 = 3.5714285714285716
number1 % number2 = 2.0

L'operatore + può anche essere utilizzato per catenare valori Stringa, unendo le stringhe.

Esempio: concatenazione di stringhe

fun main(args: Array<String>) {
    val start = "Talk is cheap. "
    val middle = "Show me the code. "
    val end = "- Linus Torvalds"
    val result = start + middle + end
    println(result)
}

When running the program, the output is:

Parlare è facile. Mostrami il codice. - Linus Torvalds

Come funziona effettivamente l'operatore aritmetico?

Supponiamo che tu stia utilizzando l'operatore aritmetico + per sommare due numeri a e b.

Nella parte posteriore, l'espressione a + b chiama la funzione membro a.plus(b). L'operatore plus è sovraccaricato per gestire valori Stringa e altri tipi di dati fondamentali (Char and Boolean除外)。

// + 基本类型的运算符
Char
Boolean
eccezione).
// operatori di base per i tipi fondamentali
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(other: Float): Float

operator fun plus(other: Double): Double // concatenazione di stringhe

operator fun String?.plus(other: Any?): String

expressionPuoi anche utilizzare l'operatore + per gestire i tipi definiti dall'utente (come gli oggetti) tramite la funzione plus() sovraccaricata.Usage
Leggi anche:sovraccaricamento degli operatori KotlinEcco l'elenco degli operatori aritmetici e delle loro funzioni corrispondenti:
nome della funzionea + baddizione
a - bsottrazione
a * b
moltiplicazionea / b
divisione
a % bmoduloa.mod(b)

operatore di assegnazione

Gli operatori di assegnazione vengono utilizzati per assegnare valori alle variabili. Abbiamo già utilizzato l'operatore di assegnazione semplice =.

val age = 5

In questo caso, l'operatore = viene utilizzato per assegnare 5 alla variabile age.

Di seguito è elencato l'elenco di tutti gli operatori di assegnazione e le loro funzioni corrispondenti:

expressionequivalente aUsage
a += ba = a + ba.plusAssign(b)
a -= ba = a - ba.minusAssign(b)
a *= ba = a * ba.timesAssign(b)
a /= ba = a / ba.divAssign(b)
a %= ba = a % ba.modAssign(b)

Esempio: operatore di assegnazione

fun main(args: Array<String>) {
    var number = 12
    number *= 5 // number = number * 5
    println("number = $number")
}

When running the program, the output is:

number = 60

operatore prefisso unario e incrementale/decrementale

Questo è l'operatore unario, la loro significato e la funzione corrispondente sono elencati di seguito:

operatorDescrizioneexpressionUsage
+un'operatore unario+aa.unaryPlus()
-Sottrazione unaria-aa.unaryMinus()
!Non (inversione del valore)!aa.not()
++Incremento: valore +1++aa.inc()
--Decremento: valore -1--a
a.dec()

Esempio: operatori unari

fun main(args: Array<String>) {
    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 running the program, the output is:

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

Operatori di confronto e uguaglianza

Questi sono gli operatori di uguaglianza e confronto, il loro significato e la lista delle relative funzioni:

operatorDescrizioneexpressionUsage
>Maggiore dia > ba.compareTo(b) > 0
<Minore dia < ba.compareTo(b) < 0
>=Maggiore o uguale aa >= ba.compareTo(b) >= 0
<=Minore o uguale aa <= ba.compareTo(b) <= 0
==Uguale aa == ba?.equals(b) ?: (b === null)
!=Diverso daa != b!(a?.equals(b) ?: (b === null))

Gli operatori di confronto e uguaglianza vengono utilizzati per il controllo del flusso, ad esempio:if espressione,when expression and loop.

Esempio: operatori di confronto e uguaglianza

fun main(args: Array<String>) {
    val a = -12
    val b = 12
    //Utilizzo dell'operatore maggiore
    val max = if (a > b) {
        println("a è maggiore di b")
        a
    } else {
        println("b è maggiore di a")
        b
    }
    println("max = $max")
}

When running the program, the output is:

b è maggiore di a
max = 12

Operatori logici

In Kotlin ci sono due operatori logici: || e &&

Questi sono gli operatori logici, il loro significato e la tabella delle relative funzioni.

operatorDescrizioneexpressionCorrispondente funzione
||Se almeno una espressione booleana è true, allora è true
(a > b) || (a < c)(a > b) or (a < c)
&&Se tutti gli espressioni booleane sono true, allora è true(a > b) && (a < c)(a > b) and (a < c)

Please note that or and and are functions that support infix notation.

Logical operators are used for control flow, such as if expression,when expression and loop.

Example: logical operators

fun main(args: Array<String>) {
    val a = 10
    val b = 9
    val c = -1
    val result: Boolean
    // result is true if it is the largest
    result = (a > b) && (a > c) // result = (a > b) and (a > c)
    println(result)
}

When running the program, the output is:

true

in operator

The in operator is used to check if an object belongs to a collection.

operatorexpressionUsage
in
a in bb.contains(a)
!in
a !in b
!b.contains(a)

Example: in operator

fun main(args: Array<String>) {
    val numbers = intArrayOf(1, 4, 42, -3)
    if (4 in numbers) {
        println("numbers array contains 4.")
    }
}

When running the program, the output is:

The numbers array contains 4.

Index access operator

The following are some expressions using the index access operator with corresponding functions in Kotlin.

expressionUsage
a[i]a.get(i)
a[i, n]a.get(i, n)
a[i1, i2, ..., in]a.get(i1, i2, ..., in)
a[i] = ba.set(i, b)
a[i, n] = ba.set(i, n, b)
a[i1, i2, ..., in] = ba.set(i1, i2, ..., in, b)

Example: index access operator

fun main(args: Array<String>) {
    val a = intArrayOf(1, 2, 3, 4, -1)
    println(a[1])   
    a[1]= 12
    println(a[1])
}

When running the program, the output is:

2
12

invoke operator

The following are some expressions using the invoke operator with corresponding functions in Kotlin.

expressionTranslation into
a()a.invoke()
a(i)a.invoke(i)
a(i1, i2, ..., in)a.invoke(i1, i2, ..., in)
a[i] = ba.set(i, b)

In Kotlin, parentheses are converted to calling the invoke member function.

Operazioni a bit

A differenza di Java, in Kotlin non ci sono operatori di bit e shift. Per eseguire questi compiti, vengono utilizzate diverse funzionalità (supportano i simboli infix):

  • shl - shift a sinistra con segno

  • shr - shift a destra con segno

  • ushr - shift a destra unsigned

  • and - AND a bit

  • or - OR a bit

  • xor - XOR a bit

  • inv - inversione a bit

Visita questa pagina per informazioni suOperazioni a bit in KotlinPer ulteriori informazioni.

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