English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
Ecco l'elenco degli operatori aritmetici in Kotlin:
operator | Descrizione |
---|---|
+ | Operatore di aggiunta (utilizzato anche per la connessione delle stringhe) |
- | Operatore di sottrazione |
* | Operatore di moltiplicazione |
/ | Operatore di divisione |
% | Operatore modulo |
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.
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
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
expression | Puoi 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 Kotlin | Ecco l'elenco degli operatori aritmetici e delle loro funzioni corrispondenti: |
nome della funzione | a + b | addizione |
a - b | sottrazione | a * b |
moltiplicazione | a / b | divisione |
a % b | modulo | a.mod(b) |
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:
expression | equivalente a | Usage |
---|---|---|
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) |
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
Questo è l'operatore unario, la loro significato e la funzione corrispondente sono elencati di seguito:
operator | Descrizione | expression | Usage |
---|---|---|---|
+ | un'operatore unario | +a | a.unaryPlus() |
- | Sottrazione unaria | -a | a.unaryMinus() |
! | Non (inversione del valore) | !a | a.not() |
++ | Incremento: valore +1 | ++a | a.inc() |
-- | Decremento: valore -1 | --a | a.dec() |
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
Questi sono gli operatori di uguaglianza e confronto, il loro significato e la lista delle relative funzioni:
operator | Descrizione | expression | Usage |
---|---|---|---|
> | Maggiore di | a > b | a.compareTo(b) > 0 |
< | Minore di | a < b | a.compareTo(b) < 0 |
>= | Maggiore o uguale a | a >= b | a.compareTo(b) >= 0 |
<= | Minore o uguale a | a <= b | a.compareTo(b) <= 0 |
== | Uguale a | a == b | a?.equals(b) ?: (b === null) |
!= | Diverso da | a != 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.
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
In Kotlin ci sono due operatori logici: || e &&
Questi sono gli operatori logici, il loro significato e la tabella delle relative funzioni.
operator | Descrizione | expression | Corrispondente 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.
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
The in operator is used to check if an object belongs to a collection.
operator | expression | Usage |
---|---|---|
in | a in b | b.contains(a) |
!in | a !in b | !b.contains(a) |
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.
The following are some expressions using the index access operator with corresponding functions in Kotlin.
expression | Usage |
---|---|
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) |
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
The following are some expressions using the invoke operator with corresponding functions in Kotlin.
expression | Translation into |
---|---|
a() | a.invoke() |
a(i) | a.invoke(i) |
a(i1, i2, ..., in) | a.invoke(i1, i2, ..., in) |
a[i] = b | a.set(i, b) |
In Kotlin, parentheses are converted to calling the invoke member function.
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.