Kotlin dispose d'un ensemble d'opérateurs pour effectuer des opérations d'arithmétique, d'affectation, de comparaison et plus encore. Vous apprendrez à utiliser ces opérateurs dans cet article.
Les opérateurs sont des symboles spéciaux (caractères) qui effectuent des opérations sur des opérandes (variables et valeurs). Par exemple, +
est un opérateur qui effectue une addition.
Dans l'article sur les variables Java, vous avez appris à déclarer des variables et à attribuer des valeurs aux variables. Vous allez maintenant apprendre à utiliser les opérateurs pour effectuer diverses opérations sur eux.
1. Opérateurs arithmétiques
Voici une liste d'opérateurs arithmétiques dans Kotlin:
Opérateurs arithmétiques KotlinOpérateur | Sens |
---|---|
+ | Ajout (également utilisé pour la concaténation de chaînes) |
- | Opérateur de soustraction |
* | Opérateur de multiplication |
/ | Opérateur de division |
% | Opérateur de module |
Exemple: opérateurs arithmétiques
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") )
Lorsque vous exécutez le programme, la sortie sera:
nombre1 + nombre2 = 16,0 nombre1 - nombre2 = 9,0 nombre1 * nombre2 = 43,75 nombre1 / nombre2 = 3,5714285714285716 nombre1% nombre2 = 2,0
L' +
opérateur est également utilisé pour la concaténation des String
valeurs.
Exemple: Concaténation de chaînes
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) )
Lorsque vous exécutez le programme, la sortie sera:
Parler n'est pas cher. Montre-moi le code. - Linus Torvalds
Comment fonctionnent réellement les opérateurs arithmétiques?
Supposons que vous utilisiez +
l'opérateur arithmétique pour ajouter deux nombres a et b.
Sous le capot, l'expression a + b
appelle la a.plus(b)
fonction membre. L' plus
opérateur est surchargé pour travailler avec des String
valeurs et d'autres types de données de base (sauf Char et Boolean).
// + opérateur pour les types de 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 (other: Float): Float operator fun plus (other: Double): Double // pour l'opérateur de concaténation de chaînes fun String? .plus (other: Any?): String
Vous pouvez également utiliser l' +
opérateur pour travailler avec des types définis par l'utilisateur (comme des objets) en surchargeant la plus()
fonction.
Lecture recommandée: surcharge de l'opérateur Kotlin
Voici un tableau des opérateurs arithmétiques et de leurs fonctions correspondantes:
Expression | Nom de la fonction | Se traduit par |
---|---|---|
a + b | plus | a.plus (b) |
un B | moins | a. moins (b) |
un B | fois | a. fois (b) |
un B | div | a.div (b) |
un B | mod | a.mod (b) |
2. Opérateurs d'affectation
Les opérateurs d'affectation sont utilisés pour affecter une valeur à une variable. Nous avons déjà utilisé un opérateur d'affectation simple =
auparavant.
âge val = 5
Ici, 5 est attribué à l'âge variable à l'aide de l' =
opérateur.
Voici une liste de tous les opérateurs d'affectation et de leurs fonctions correspondantes:
Expression | Équivalent à | Se traduit par |
---|---|---|
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) |
Exemple: opérateurs d'affectation
fun main(args: Array) ( var number = 12 number *= 5 // number = number*5 println("number = $number") )
Lorsque vous exécutez le programme, la sortie sera:
nombre = 60
Lecture recommandée: surcharge des opérateurs d'affectation dans Kotlin.
3. Préfixe unaire et opérateurs d'incrémentation / décrémentation
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
Voici quelques expressions utilisant l'opérateur invoke avec les fonctions correspondantes dans Kotlin.
Expression | Traduit en |
---|---|
a() | a.invoke() |
a(i) | a.invoke(i) |
a(i1, i2,… , in) | a.inkove(i1, i2,… , in) |
a(i) = b | a.set(i, b) |
Dans Kotlin, les parenthèses sont traduites pour appeler la invoke
fonction membre.
Lecture recommandée: Invoquer la surcharge de l'opérateur dans Kotlin
Opération au niveau du bit
Contrairement à Java, il n'y a pas d'opérateurs de bits et de bitshift dans Kotlin. Pour effectuer ces tâches, diverses fonctions (prenant en charge la notation infixe) sont utilisées:
shl
- Maj gauche signéshr
- Décalage signé à droiteushr
- Décalage à droite non signéand
- Bitwise etor
- Bitwise ouxor
- xor au niveau du bitinv
- Inversion au niveau du bit
Visitez cette page pour en savoir plus sur les opérations Bitwise dans Kotlin.
De plus, il n'y a pas d'opérateur ternaire dans Kotlin contrairement à Java.