Opérateurs Kotlin: Arithmétique, opérateur d'affectation et plus

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 Kotlin
Opé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 Stringvaleurs.

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 + bappelle la a.plus(b)fonction membre. L' plusopérateur est surchargé pour travailler avec des Stringvaleurs 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 invokefonction 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é à droite
  • ushr - Décalage à droite non signé
  • and - Bitwise et
  • or - Bitwise ou
  • xor - xor au niveau du bit
  • inv - 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.

Articles intéressants...